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.
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/PKG-INFO +1 -1
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/torch_graph_editor.py +3 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/torch_utils.py +45 -1
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/pyproject.toml +1 -1
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/LICENSE +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/README.md +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/__init__.py +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/contract/__init__.py +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/contract/graph.py +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/contract/importmodelresponse.py +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/contract/nodedata.py +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/contract/ui_components.json +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/keras_json_model_import.py +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/leap_graph_editor.py +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/model_parser.py +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/torch_model_parser.py +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/__init__.py +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/layerpedia/__init__.py +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/layerpedia/layerpedia.py +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/tlinspection/__init__.py +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/tlinspection/leapinspection.py +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/uicomponents/__init__.py +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/uicomponents/generatenodedata.py +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/uicomponents/tensorflowinscpection.py +0 -0
- {leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/utils/uicomponents/ui_components.json +0 -0
- {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
|
@@ -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 = []
|
{leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/torch_utils.py
RENAMED
|
@@ -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],
|
|
File without changes
|
|
File without changes
|
{leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{leap_model_parser-0.1.250.dev4 → leap_model_parser-0.1.250.dev6}/leap_model_parser/model_parser.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|