leap-model-parser 0.1.250.dev0__tar.gz → 0.1.250.dev2__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 (25) hide show
  1. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/PKG-INFO +2 -2
  2. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/torch_utils.py +27 -2
  3. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/pyproject.toml +2 -2
  4. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/LICENSE +0 -0
  5. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/README.md +0 -0
  6. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/__init__.py +0 -0
  7. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/contract/__init__.py +0 -0
  8. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/contract/graph.py +0 -0
  9. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/contract/importmodelresponse.py +0 -0
  10. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/contract/nodedata.py +0 -0
  11. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/contract/ui_components.json +0 -0
  12. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/keras_json_model_import.py +0 -0
  13. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/leap_graph_editor.py +0 -0
  14. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/model_parser.py +0 -0
  15. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/torch_model_parser.py +0 -0
  16. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/utils/__init__.py +0 -0
  17. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/utils/layerpedia/__init__.py +0 -0
  18. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/utils/layerpedia/layerpedia.py +0 -0
  19. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/utils/tlinspection/__init__.py +0 -0
  20. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/utils/tlinspection/leapinspection.py +0 -0
  21. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/utils/uicomponents/__init__.py +0 -0
  22. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/utils/uicomponents/generatenodedata.py +0 -0
  23. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/utils/uicomponents/tensorflowinscpection.py +0 -0
  24. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/leap_model_parser/utils/uicomponents/ui_components.json +0 -0
  25. {leap_model_parser-0.1.250.dev0 → leap_model_parser-0.1.250.dev2}/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.dev0
3
+ Version: 0.1.250.dev2
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.190)
20
+ Requires-Dist: onnx2kerastl (==0.0.191)
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"
@@ -58,8 +58,33 @@ class ActivationInterpreter(fx.Interpreter):
58
58
  super().__init__(gm)
59
59
  self.cache: Dict[str, torch.Tensor] = {}
60
60
 
61
+ def _store_tensor(self, name: str, value: Any) -> None:
62
+ if isinstance(value, torch.Tensor):
63
+ self.cache[name] = value.detach().clone()
64
+ elif isinstance(value, (tuple, list)) and len(value) > 0:
65
+ first = value[0]
66
+ if isinstance(first, torch.Tensor):
67
+ self.cache[name] = first.detach().clone()
68
+
61
69
  def run_node(self, node: fx.Node) -> Any:
62
70
  result = super().run_node(node)
63
- if isinstance(result, torch.Tensor):
64
- self.cache[node.name] = result.detach().clone()
71
+ self._store_tensor(node.name, result)
65
72
  return result
73
+
74
+
75
+ def get_module_activations(
76
+ ep: "ExportedProgram",
77
+ user_inputs: List[torch.Tensor],
78
+ ) -> Dict[str, "np.ndarray"]:
79
+ import numpy as np
80
+ tensors = [torch.from_numpy(x.astype(np.float32)) if isinstance(x, np.ndarray) else x
81
+ for x in user_inputs]
82
+ m2n = build_module_to_node_map(ep)
83
+ interp = ActivationInterpreter(ep.graph_module)
84
+ with torch.no_grad():
85
+ interp.run(*get_full_args(ep, tensors))
86
+ result: Dict[str, "np.ndarray"] = {}
87
+ for mod_path, (node_name, _) in m2n.items():
88
+ if node_name in interp.cache:
89
+ result[mod_path] = interp.cache[node_name].numpy()
90
+ return result
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "leap-model-parser"
3
- version = "0.1.250.dev"
3
+ version = "0.1.250.dev2"
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.190"
21
+ onnx2kerastl = "0.0.191"
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"