leap-model-parser 0.1.185.dev5__tar.gz → 0.1.185.dev7__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.185.dev5 → leap_model_parser-0.1.185.dev7}/PKG-INFO +2 -2
  2. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/keras_json_model_import.py +2 -0
  3. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/leap_graph_editor.py +17 -3
  4. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/pyproject.toml +2 -2
  5. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/LICENSE +0 -0
  6. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/README.md +0 -0
  7. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/__init__.py +0 -0
  8. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/contract/__init__.py +0 -0
  9. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/contract/graph.py +0 -0
  10. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/contract/importmodelresponse.py +0 -0
  11. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/contract/nodedata.py +0 -0
  12. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/contract/ui_components.json +0 -0
  13. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/model_parser.py +0 -0
  14. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/utils/__init__.py +0 -0
  15. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/utils/layerpedia/__init__.py +0 -0
  16. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/utils/layerpedia/layerpedia.py +0 -0
  17. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/utils/tlinspection/__init__.py +0 -0
  18. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/utils/tlinspection/leapinspection.py +0 -0
  19. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/utils/uicomponents/__init__.py +0 -0
  20. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/utils/uicomponents/generatenodedata.py +0 -0
  21. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/utils/uicomponents/tensorflowinscpection.py +0 -0
  22. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/leap_model_parser/utils/uicomponents/ui_components.json +0 -0
  23. {leap_model_parser-0.1.185.dev5 → leap_model_parser-0.1.185.dev7}/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.185.dev5
3
+ Version: 0.1.185.dev7
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.dev5)
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)
@@ -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:
@@ -102,7 +102,8 @@ class LeapGraphEditor:
102
102
  # raise Exception("prediction_type_name is required for loss connection")
103
103
 
104
104
  new_loss_node_id = self._add_loss_node(node_connection.node.name,
105
- node_connection.node.type == NodeMappingType.CustomLoss)
105
+ node_connection.node.type == NodeMappingType.CustomLoss,
106
+ node_connection.node.arg_names)
106
107
  for input_name, node in node_connection.node_inputs.items():
107
108
  input_node_id = self._find_or_add_input_node(node)
108
109
  # if node.type == NodeMappingType.Layer:
@@ -231,7 +232,7 @@ class LeapGraphEditor:
231
232
  self.model_graph[new_node_id] = metric_node
232
233
  return new_node_id
233
234
 
234
- def _add_loss_node(self, loss_name: str, is_custom_loss: bool) -> str:
235
+ def _add_loss_node(self, loss_name: str, is_custom_loss: bool, arg_names: Optional[List[str]]=None) -> str:
235
236
  new_node_id = self._generate_new_node_id()
236
237
 
237
238
  loss_type = 'CustomLoss' if is_custom_loss else 'Loss'
@@ -250,6 +251,9 @@ class LeapGraphEditor:
250
251
  # f'{new_node_id}-loss': {'connections': []}
251
252
  # }
252
253
  )
254
+ if arg_names is not None:
255
+ loss_node.data['arg_names'] = arg_names
256
+
253
257
 
254
258
  self.model_graph[new_node_id] = loss_node
255
259
  return new_node_id
@@ -306,7 +310,17 @@ class LeapGraphEditor:
306
310
  if input_node.type in (NodeMappingType.Input, NodeMappingType.GroundTruth):
307
311
  input_node_id = self._find_encoder_node_id(input_node.name)
308
312
  if input_node_id is None:
309
- input_node_id = self._add_ground_truth_node(input_node.name)
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}")
310
324
  elif input_node.type.value.startswith('Prediction'):
311
325
  input_node_id = self._find_node_by_origin_name(input_node.name).id
312
326
  else:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "leap-model-parser"
3
- version = "0.1.185.dev5"
3
+ version = "0.1.185.dev7"
4
4
  description = ""
5
5
  authors = ["idan <idan.yogev@tensorleap.ai>"]
6
6
  license = "MIT"
@@ -22,7 +22,7 @@ onnx2kerastl = "0.0.174"
22
22
  keras-data-format-converter = "0.1.22"
23
23
  leap-model-rebuilder = "0.1.7"
24
24
  tensorflow-io-gcs-filesystem = "0.34.0"
25
- code-loader = "1.0.87.dev5"
25
+ code-loader = "1.0.87.dev7"
26
26
 
27
27
  [tool.poetry.dev-dependencies]
28
28
  pytest = "^7.1.1"