leap-model-parser 0.1.244.dev5__tar.gz → 0.1.245.dev0__tar.gz

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.
Files changed (23) hide show
  1. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/PKG-INFO +2 -2
  2. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/keras_json_model_import.py +19 -10
  3. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/pyproject.toml +2 -2
  4. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/LICENSE +0 -0
  5. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/README.md +0 -0
  6. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/__init__.py +0 -0
  7. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/contract/__init__.py +0 -0
  8. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/contract/graph.py +0 -0
  9. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/contract/importmodelresponse.py +0 -0
  10. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/contract/nodedata.py +0 -0
  11. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/contract/ui_components.json +0 -0
  12. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/leap_graph_editor.py +0 -0
  13. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/model_parser.py +0 -0
  14. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/utils/__init__.py +0 -0
  15. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/utils/layerpedia/__init__.py +0 -0
  16. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/utils/layerpedia/layerpedia.py +0 -0
  17. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/utils/tlinspection/__init__.py +0 -0
  18. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/utils/tlinspection/leapinspection.py +0 -0
  19. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/utils/uicomponents/__init__.py +0 -0
  20. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/utils/uicomponents/generatenodedata.py +0 -0
  21. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/utils/uicomponents/tensorflowinscpection.py +0 -0
  22. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/utils/uicomponents/ui_components.json +0 -0
  23. {leap_model_parser-0.1.244.dev5 → leap_model_parser-0.1.245.dev0}/leap_model_parser/utils/uicomponents/ui_components_config.yaml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: leap-model-parser
3
- Version: 0.1.244.dev5
3
+ Version: 0.1.245.dev0
4
4
  Summary:
5
5
  Home-page: https://github.com/tensorleap/leap-model-parser
6
6
  License: MIT
@@ -17,7 +17,7 @@ Requires-Dist: keras-data-format-converter (==0.1.24)
17
17
  Requires-Dist: leap-model-rebuilder (==0.1.7)
18
18
  Requires-Dist: numpy (>=1.22.3,<2.0.0)
19
19
  Requires-Dist: onnx (==1.13.0)
20
- Requires-Dist: onnx2kerastl (==0.0.188.dev5)
20
+ Requires-Dist: onnx2kerastl (==0.0.188.dev)
21
21
  Requires-Dist: tensorflow (==2.12.0) ; platform_machine == "x86_64"
22
22
  Requires-Dist: tensorflow-io-gcs-filesystem (==0.34.0)
23
23
  Requires-Dist: tensorflow-macos (==2.12.0) ; platform_machine == "arm64"
@@ -93,11 +93,12 @@ class KerasJsonModelImport:
93
93
 
94
94
  self.visited_connections.add(connection_name)
95
95
  self.attach(input_layer, input_node_name,
96
- current_node_name, input_index)
96
+ current_node_name, input_index, len(inbound_layers))
97
97
  self.generate_graph_recursive(current_layer=input_layer, instance_index=input_node_instance_index,
98
98
  layer_name_to_inbound_nodes=layer_name_to_inbound_nodes)
99
99
 
100
- def attach(self, input_layer: Dict, node_input_layer_name: str, node_output_layer_name: str, input_index: int):
100
+ def attach(self, input_layer: Dict, node_input_layer_name: str, node_output_layer_name: str, input_index: int,
101
+ num_inbound: int = None):
101
102
  node_output_layer = self.nodes_cache[node_output_layer_name]
102
103
  if input_layer['class_name'] == 'InputLayer':
103
104
  if node_output_layer.name == 'Lambda':
@@ -108,7 +109,7 @@ class KerasJsonModelImport:
108
109
  node_output_key = self.get_connection_key(
109
110
  input_layer, node_input_layer, 'outputs', input_index)
110
111
  node_input_key = self.get_connection_key(
111
- input_layer, node_output_layer, 'inputs', input_index)
112
+ input_layer, node_output_layer, 'inputs', input_index, num_inbound)
112
113
  if node_output_key is None or node_input_key is None:
113
114
  return
114
115
 
@@ -285,7 +286,8 @@ class KerasJsonModelImport:
285
286
  "output_name": "Action"
286
287
  })
287
288
 
288
- def get_connection_key(self, node_input_layer, node: Node, direction: str, index: int) -> Optional[str]:
289
+ def get_connection_key(self, node_input_layer, node: Node, direction: str, index: int,
290
+ num_connections: int = None) -> Optional[str]:
289
291
  layer_metadata = self.ui_components.get(node.name)
290
292
  if _is_represntaion_block_node(node) or layer_metadata is None:
291
293
  if direction == 'inputs':
@@ -295,17 +297,24 @@ class KerasJsonModelImport:
295
297
  elif _is_input_node(node):
296
298
  connection_format = f"{node.id}-{node_input_layer['name']}"
297
299
  else:
298
- try:
299
- connection_format = layer_metadata[f"{direction}_data"][direction][index]['name']
300
- except IndexError:
301
- connection_format = layer_metadata[f"{direction}_data"][direction][0]['name']
302
- if connection_format.count('${id}') > 0:
300
+ metadata_slots = layer_metadata[f"{direction}_data"][direction]
301
+ if num_connections is not None and num_connections > len(metadata_slots) and '${id}' not in metadata_slots[0].get('name', ''):
303
302
  connection_format = f"{node.id}-{index}"
304
303
  if 'custom_input_keys' not in node.data:
305
304
  node.data['custom_input_keys'] = []
306
305
  node.data['custom_input_keys'].append(connection_format)
307
306
  else:
308
- connection_format = f"{node.id}-{connection_format}"
307
+ try:
308
+ connection_format = metadata_slots[index]['name']
309
+ except IndexError:
310
+ connection_format = metadata_slots[0]['name']
311
+ if connection_format.count('${id}') > 0:
312
+ connection_format = f"{node.id}-{index}"
313
+ if 'custom_input_keys' not in node.data:
314
+ node.data['custom_input_keys'] = []
315
+ node.data['custom_input_keys'].append(connection_format)
316
+ else:
317
+ connection_format = f"{node.id}-{connection_format}"
309
318
  return connection_format
310
319
 
311
320
  def handle_cudnn(self, layer: Dict[str, Any]) -> Dict[str, Any]:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "leap-model-parser"
3
- version = "0.1.244.dev5"
3
+ version = "0.1.245.dev"
4
4
  description = ""
5
5
  authors = ["idan <idan.yogev@tensorleap.ai>"]
6
6
  license = "MIT"
@@ -18,7 +18,7 @@ tensorflow = {version = "2.12.0", markers = "platform_machine == 'x86_64'"}
18
18
  tensorflow-macos = {version = "2.12.0", markers = "platform_machine == 'arm64'"}
19
19
  numpy = "^1.22.3"
20
20
  onnx = "1.13.0"
21
- onnx2kerastl = "0.0.188.dev5"
21
+ onnx2kerastl = "0.0.188.dev"
22
22
  keras-data-format-converter = "0.1.24"
23
23
  leap-model-rebuilder = "0.1.7"
24
24
  tensorflow-io-gcs-filesystem = "0.34.0"