leap-model-parser 0.1.250.dev4__tar.gz → 0.1.250.dev6__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 (26) hide show
  1. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/PKG-INFO +1 -1
  2. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/torch_graph_editor.py +3 -0
  3. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/torch_utils.py +45 -1
  4. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/pyproject.toml +1 -1
  5. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/LICENSE +0 -0
  6. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/README.md +0 -0
  7. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/__init__.py +0 -0
  8. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/contract/__init__.py +0 -0
  9. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/contract/graph.py +0 -0
  10. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/contract/importmodelresponse.py +0 -0
  11. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/contract/nodedata.py +0 -0
  12. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/contract/ui_components.json +0 -0
  13. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/keras_json_model_import.py +0 -0
  14. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/leap_graph_editor.py +0 -0
  15. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/model_parser.py +0 -0
  16. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/torch_model_parser.py +0 -0
  17. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/__init__.py +0 -0
  18. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/layerpedia/__init__.py +0 -0
  19. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/layerpedia/layerpedia.py +0 -0
  20. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/tlinspection/__init__.py +0 -0
  21. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/tlinspection/leapinspection.py +0 -0
  22. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/uicomponents/__init__.py +0 -0
  23. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/uicomponents/generatenodedata.py +0 -0
  24. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/uicomponents/tensorflowinscpection.py +0 -0
  25. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/uicomponents/ui_components.json +0 -0
  26. {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/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.250.dev4
3
+ Version: 0.1.250.dev6
4
4
  Summary:
5
5
  Home-page: https://github.com/tensorleap/leap-model-parser
6
6
  License: MIT
@@ -28,6 +28,9 @@ class TorchLeapGraphEditor(LeapGraphEditor):
28
28
  )
29
29
  return module_path
30
30
 
31
+ def _handle_input_node_with_index(self, input_node) -> str:
32
+ return self._add_input_encoder_not_connected_to_the_model_node(input_node.name)
33
+
31
34
  def _resolve_input_origin_name(self, input_index: int) -> str:
32
35
  from torch.export.graph_signature import InputKind
33
36
  user_inputs = []
@@ -3,7 +3,7 @@ import torch
3
3
  import torch.fx as fx
4
4
  from torch.export import ExportedProgram
5
5
  from torch.export.graph_signature import InputKind
6
- from typing import Any, Dict, List, Tuple
6
+ from typing import Any, Dict, List, Optional, Tuple
7
7
 
8
8
 
9
9
  def get_full_args(ep: ExportedProgram, user_inputs: List[torch.Tensor]) -> List[torch.Tensor]:
@@ -74,6 +74,50 @@ class ActivationInterpreter(fx.Interpreter):
74
74
  return result
75
75
 
76
76
 
77
+ def get_pt2_output_module_paths(ep: ExportedProgram) -> List[Optional[str]]:
78
+ """Return the nn.Module path responsible for each output slot in the FX graph."""
79
+ output_node = None
80
+ for node in ep.graph_module.graph.nodes:
81
+ if node.op == "output":
82
+ output_node = node
83
+ break
84
+ if output_node is None:
85
+ return []
86
+
87
+ args = output_node.args[0]
88
+ if not isinstance(args, (list, tuple)):
89
+ args = [args]
90
+
91
+ result: List[Optional[str]] = []
92
+ for output_ref in args:
93
+ if output_ref is None or not hasattr(output_ref, "meta"):
94
+ result.append(None)
95
+ continue
96
+
97
+ visited: set = set()
98
+ current = output_ref
99
+ mod_path = None
100
+ while current.op == "call_function" and current not in visited:
101
+ stack = current.meta.get("nn_module_stack", {})
102
+ if stack:
103
+ mod_path = list(stack.items())[-1][1][0]
104
+ break
105
+ if current.args:
106
+ visited.add(current)
107
+ current = current.args[0]
108
+ else:
109
+ break
110
+
111
+ if mod_path is None:
112
+ stack = current.meta.get("nn_module_stack", {})
113
+ if stack:
114
+ mod_path = list(stack.items())[-1][1][0]
115
+
116
+ result.append(mod_path)
117
+
118
+ return result
119
+
120
+
77
121
  def get_module_activations(
78
122
  ep: ExportedProgram,
79
123
  user_inputs: List[torch.Tensor],
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "leap-model-parser"
3
- version = "0.1.250.dev4"
3
+ version = "0.1.250.dev6"
4
4
  description = ""
5
5
  authors = ["idan <idan.yogev@tensorleap.ai>"]
6
6
  license = "MIT"