leap-model-parser 0.1.185.dev6__py3-none-any.whl → 0.1.185.dev8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- leap_model_parser/keras_json_model_import.py +2 -0
- leap_model_parser/leap_graph_editor.py +11 -1
- leap_model_parser/model_parser.py +20 -42
- {leap_model_parser-0.1.185.dev6.dist-info → leap_model_parser-0.1.185.dev8.dist-info}/METADATA +2 -2
- {leap_model_parser-0.1.185.dev6.dist-info → leap_model_parser-0.1.185.dev8.dist-info}/RECORD +8 -8
- {leap_model_parser-0.1.185.dev6.dist-info → leap_model_parser-0.1.185.dev8.dist-info}/LICENSE +0 -0
- {leap_model_parser-0.1.185.dev6.dist-info → leap_model_parser-0.1.185.dev8.dist-info}/WHEEL +0 -0
- {leap_model_parser-0.1.185.dev6.dist-info → leap_model_parser-0.1.185.dev8.dist-info}/entry_points.txt +0 -0
@@ -349,6 +349,8 @@ def _add_origin_name_to_nodes(nodes: Dict[str, Node]):
|
|
349
349
|
if "name" in node.data:
|
350
350
|
node.data["origin_name"] = node.data["name"]
|
351
351
|
node.data.pop("name")
|
352
|
+
elif "output_name" in node.data:
|
353
|
+
node.data["origin_name"] = node.data["output_name"]
|
352
354
|
|
353
355
|
|
354
356
|
def _is_input_node(node: Node) -> bool:
|
@@ -310,7 +310,17 @@ class LeapGraphEditor:
|
|
310
310
|
if input_node.type in (NodeMappingType.Input, NodeMappingType.GroundTruth):
|
311
311
|
input_node_id = self._find_encoder_node_id(input_node.name)
|
312
312
|
if input_node_id is None:
|
313
|
-
|
313
|
+
if input_node.type == NodeMappingType.GroundTruth:
|
314
|
+
input_node_id = self._add_ground_truth_node(input_node.name)
|
315
|
+
else:
|
316
|
+
raise Exception(f'Couldnt find input node name {input_node.name}')
|
317
|
+
elif 'Input' in input_node.type.value:
|
318
|
+
input_index = int(input_node.type.value.replace('Input', ''))
|
319
|
+
origin_name = self.keras_model.inputs[input_index].node.layer.name
|
320
|
+
input_node_id = self._find_input_node_by_origin_name(origin_name)
|
321
|
+
self.model_graph[input_node_id].data['output_name'] = input_node.name
|
322
|
+
if input_node_id is None:
|
323
|
+
raise Exception(f"Couldn't find input node by origin name {origin_name}")
|
314
324
|
elif input_node.type.value.startswith('Prediction'):
|
315
325
|
input_node_id = self._find_node_by_origin_name(input_node.name).id
|
316
326
|
else:
|
@@ -60,48 +60,26 @@ class ModelParser:
|
|
60
60
|
f"Unable to import external version, {str(model_path)} file format isn't supported")
|
61
61
|
|
62
62
|
file_path = str(model_path)
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
except Exception as e:
|
84
|
-
if model_type.value in [ImportModelTypeEnum.H5_TF2.value, ImportModelTypeEnum.PB_TF2.value]:
|
85
|
-
if model_type.value == ImportModelTypeEnum.H5_TF2.value:
|
86
|
-
keras_model = self._load_keras_model_with_custom_layers(
|
87
|
-
file_path)
|
88
|
-
else:
|
89
|
-
keras_model = self._get_k_model_from_pb_path(file_path)
|
90
|
-
|
91
|
-
rebuilt_model = rebuild_model(keras_model)
|
92
|
-
model_schema, keras_model, error_info = self.convert_to_keras_model(
|
93
|
-
rebuilt_model)
|
94
|
-
|
95
|
-
layer_name_to_inbound_nodes = {
|
96
|
-
layer.name: layer.inbound_nodes
|
97
|
-
for layer in keras_model.layers
|
98
|
-
}
|
99
|
-
model_generator = KerasJsonModelImport(self.custom_layers)
|
100
|
-
graph, connected_inputs = model_generator.generate_graph(
|
101
|
-
model_schema, layer_name_to_inbound_nodes)
|
102
|
-
return graph, connected_inputs, keras_model, error_info
|
103
|
-
else:
|
104
|
-
raise e
|
63
|
+
model_schema, keras_model_with_weights, error_info = model_to_keras_converter(file_path)
|
64
|
+
model_generator = KerasJsonModelImport(self.custom_layers)
|
65
|
+
|
66
|
+
keras_model = keras_model_with_weights
|
67
|
+
if keras_model is None:
|
68
|
+
keras_model = tf.keras.models.model_from_json(json.dumps(model_schema))
|
69
|
+
layer_name_to_inbound_nodes = {
|
70
|
+
layer.name: layer.inbound_nodes
|
71
|
+
for layer in keras_model.layers
|
72
|
+
}
|
73
|
+
|
74
|
+
graph, connected_inputs = model_generator.generate_graph(
|
75
|
+
model_schema, layer_name_to_inbound_nodes)
|
76
|
+
|
77
|
+
if self.mapping_connections is not None:
|
78
|
+
leap_graph_editor = LeapGraphEditor(graph, keras_model_with_weights)
|
79
|
+
leap_graph_editor.add_connections_to_graph(self.mapping_connections)
|
80
|
+
|
81
|
+
return graph, connected_inputs, keras_model_with_weights, error_info
|
82
|
+
|
105
83
|
|
106
84
|
def _get_k_model_from_pb_path(self, file_path: str):
|
107
85
|
tar_file = tarfile.open(file_path)
|
{leap_model_parser-0.1.185.dev6.dist-info → leap_model_parser-0.1.185.dev8.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: leap-model-parser
|
3
|
-
Version: 0.1.185.
|
3
|
+
Version: 0.1.185.dev8
|
4
4
|
Summary:
|
5
5
|
Home-page: https://github.com/tensorleap/leap-model-parser
|
6
6
|
License: MIT
|
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python :: 3
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.8
|
13
13
|
Classifier: Programming Language :: Python :: 3.9
|
14
14
|
Classifier: Programming Language :: Python :: 3.10
|
15
|
-
Requires-Dist: code-loader (==1.0.87.
|
15
|
+
Requires-Dist: code-loader (==1.0.87.dev7)
|
16
16
|
Requires-Dist: keras-data-format-converter (==0.1.22)
|
17
17
|
Requires-Dist: leap-model-rebuilder (==0.1.7)
|
18
18
|
Requires-Dist: numpy (>=1.22.3,<2.0.0)
|
{leap_model_parser-0.1.185.dev6.dist-info → leap_model_parser-0.1.185.dev8.dist-info}/RECORD
RENAMED
@@ -5,9 +5,9 @@ leap_model_parser/contract/graph.py,sha256=c5rSlJJQ3JzLhyeniglzrP5GH0fp8UZDQKZw1
|
|
5
5
|
leap_model_parser/contract/importmodelresponse.py,sha256=GlvnKS8xrebU2Sj0dxqtEhAOOo3DlOtT7AMJ2BlzH9E,145
|
6
6
|
leap_model_parser/contract/nodedata.py,sha256=1_ML0nzp3QUZ0_9mGSLhfO4_hqjYMwi0DWLwymUnWEs,43326
|
7
7
|
leap_model_parser/contract/ui_components.json,sha256=0lsxwOLElW1E-imCcdh3zKPWgzFuQ_bApG6aHvYfTvo,410591
|
8
|
-
leap_model_parser/keras_json_model_import.py,sha256
|
9
|
-
leap_model_parser/leap_graph_editor.py,sha256=
|
10
|
-
leap_model_parser/model_parser.py,sha256=
|
8
|
+
leap_model_parser/keras_json_model_import.py,sha256=x7HOH6iaASfzJgwMRHgF5SQS-iFOF5j9yCG0mDC9HEA,16794
|
9
|
+
leap_model_parser/leap_graph_editor.py,sha256=FHPXJGjhVpdHxcB2EGowW3K-93M31N9oS-LPKhhdA8k,17062
|
10
|
+
leap_model_parser/model_parser.py,sha256=1EeSwlaznRRMgLeltAcDnlRWZCMpWeXySglYQEYeiRI,6618
|
11
11
|
leap_model_parser/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
12
|
leap_model_parser/utils/layerpedia/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
13
13
|
leap_model_parser/utils/layerpedia/layerpedia.py,sha256=1syubfXBTB630TVkgcQ-Ge7Qe9Zbr6EtZRreuqCJnQ8,9292
|
@@ -18,8 +18,8 @@ leap_model_parser/utils/uicomponents/generatenodedata.py,sha256=LRaPlO5jJ9pUtkvL
|
|
18
18
|
leap_model_parser/utils/uicomponents/tensorflowinscpection.py,sha256=ym613z9iQKPDBpr0RYD35bTABdm1L-Ez86G47BYT7qw,6775
|
19
19
|
leap_model_parser/utils/uicomponents/ui_components.json,sha256=0lsxwOLElW1E-imCcdh3zKPWgzFuQ_bApG6aHvYfTvo,410591
|
20
20
|
leap_model_parser/utils/uicomponents/ui_components_config.yaml,sha256=cRH8T-c3TAL0nfefRvt9pFsjbTWNEg38NRyHR7RpJsk,19534
|
21
|
-
leap_model_parser-0.1.185.
|
22
|
-
leap_model_parser-0.1.185.
|
23
|
-
leap_model_parser-0.1.185.
|
24
|
-
leap_model_parser-0.1.185.
|
25
|
-
leap_model_parser-0.1.185.
|
21
|
+
leap_model_parser-0.1.185.dev8.dist-info/LICENSE,sha256=qIwWjdspQeSMTtnFZBC8MuT-95L02FPvzRUdWFxrwJY,1067
|
22
|
+
leap_model_parser-0.1.185.dev8.dist-info/METADATA,sha256=c8XIWjvrydyi09GaoUfwRlPH0wUPpHaagsP8orCwew4,1113
|
23
|
+
leap_model_parser-0.1.185.dev8.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
24
|
+
leap_model_parser-0.1.185.dev8.dist-info/entry_points.txt,sha256=ZvV6EuQt1uAqwapNg5Lo2qjJM9ZG5g2wfzZoLh_Ztyk,77
|
25
|
+
leap_model_parser-0.1.185.dev8.dist-info/RECORD,,
|
{leap_model_parser-0.1.185.dev6.dist-info → leap_model_parser-0.1.185.dev8.dist-info}/LICENSE
RENAMED
File without changes
|
File without changes
|
File without changes
|