leap-model-parser 0.1.185.dev12__tar.gz → 0.1.187__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.185.dev12 → leap_model_parser-0.1.187}/PKG-INFO +2 -2
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/leap_graph_editor.py +15 -9
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/model_parser.py +6 -4
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/pyproject.toml +2 -2
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/LICENSE +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/README.md +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/__init__.py +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/contract/__init__.py +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/contract/graph.py +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/contract/importmodelresponse.py +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/contract/nodedata.py +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/contract/ui_components.json +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/keras_json_model_import.py +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/utils/__init__.py +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/utils/layerpedia/__init__.py +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/utils/layerpedia/layerpedia.py +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/utils/tlinspection/__init__.py +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/utils/tlinspection/leapinspection.py +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/utils/uicomponents/__init__.py +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/utils/uicomponents/generatenodedata.py +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/utils/uicomponents/tensorflowinscpection.py +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/utils/uicomponents/ui_components.json +0 -0
- {leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/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.
|
3
|
+
Version: 0.1.187
|
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.
|
15
|
+
Requires-Dist: code-loader (==1.0.89)
|
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)
|
{leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/leap_graph_editor.py
RENAMED
@@ -1,8 +1,8 @@
|
|
1
1
|
from enum import Enum
|
2
2
|
from typing import Optional, Dict, Any, List
|
3
3
|
|
4
|
-
from code_loader.contract.mapping import NodeConnection, NodeMappingType, NodeMapping
|
5
|
-
from keras import Model
|
4
|
+
from code_loader.contract.mapping import NodeConnection, NodeMappingType, NodeMapping # type: ignore
|
5
|
+
from keras import Model # type: ignore
|
6
6
|
|
7
7
|
from leap_model_parser.contract.graph import Node as Node, OutputData, ConnectionOutput, ConnectionInput, InputData
|
8
8
|
|
@@ -26,7 +26,10 @@ class LeapGraphEditor:
|
|
26
26
|
if node_connection.node.type == NodeMappingType.PredictionLabels:
|
27
27
|
prediction_labels_name = node_connection.node.name
|
28
28
|
prediction_node = list(node_connection.node_inputs.values())[0]
|
29
|
-
|
29
|
+
prediction_mapping_node = self._find_node_by_origin_name(prediction_node.name)
|
30
|
+
assert prediction_mapping_node is not None, \
|
31
|
+
f"Prediction node with name {prediction_node.name} not found in model graph"
|
32
|
+
prediction_node_id = prediction_mapping_node.id
|
30
33
|
self.model_graph[prediction_node_id].data['prediction_type'] = prediction_labels_name
|
31
34
|
if node_connection.node.type == NodeMappingType.Visualizer:
|
32
35
|
new_visualizer_node_id = self._add_visualizer_node(
|
@@ -198,12 +201,15 @@ class LeapGraphEditor:
|
|
198
201
|
input_name = f'{node_id}-{input_name}'
|
199
202
|
self.model_graph[node_id].inputs[input_name] = ConnectionInput([InputData(input_node_id, output_name)])
|
200
203
|
|
204
|
+
output_connection = OutputData(node_id, input_name)
|
201
205
|
self.model_graph[input_node_id].outputs[output_name].connections.append(output_connection)
|
202
206
|
|
203
|
-
def _handle_input_node_with_index(self, input_node: NodeMapping):
|
207
|
+
def _handle_input_node_with_index(self, input_node: NodeMapping) -> str:
|
204
208
|
input_index = int(input_node.type.value.replace('Input', ''))
|
205
209
|
origin_name = self.keras_model.inputs[input_index].node.layer.name
|
206
|
-
|
210
|
+
input_node = self._find_input_node_by_origin_name(origin_name)
|
211
|
+
assert input_node is not None, f"Input node with origin name {origin_name} not found in model graph"
|
212
|
+
input_node_id = input_node.id
|
207
213
|
self.model_graph[input_node_id].data['output_name'] = input_node.name
|
208
214
|
output_keys = list(self.model_graph[input_node_id].outputs.keys())
|
209
215
|
for output_key in output_keys:
|
@@ -218,9 +224,6 @@ class LeapGraphEditor:
|
|
218
224
|
if connection_input.output == output_key:
|
219
225
|
connection_input.output = new_output_key
|
220
226
|
|
221
|
-
if input_node_id is None:
|
222
|
-
raise Exception(f"Couldn't find input node by origin name {origin_name}")
|
223
|
-
|
224
227
|
return input_node_id
|
225
228
|
|
226
229
|
def _find_or_add_input_node(self, input_node: NodeMapping) -> str:
|
@@ -234,7 +237,10 @@ class LeapGraphEditor:
|
|
234
237
|
elif 'Input' in input_node.type.value:
|
235
238
|
input_node_id = self._handle_input_node_with_index(input_node)
|
236
239
|
elif input_node.type.value.startswith('Prediction'):
|
237
|
-
|
240
|
+
node_by_origin_name = self._find_node_by_origin_name(input_node.name)
|
241
|
+
assert node_by_origin_name is not None, \
|
242
|
+
f"Prediction node with name {input_node.name} not found in model graph"
|
243
|
+
input_node_id = node_by_origin_name.id
|
238
244
|
else:
|
239
245
|
input_node_id = self._find_layer_node_id(input_node.name)
|
240
246
|
|
{leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/model_parser.py
RENAMED
@@ -5,10 +5,10 @@ import tarfile
|
|
5
5
|
import tempfile
|
6
6
|
from importlib.util import find_spec
|
7
7
|
from pathlib import Path
|
8
|
-
|
8
|
+
|
9
9
|
|
10
10
|
import tensorflow as tf # type: ignore
|
11
|
-
from code_loader.contract.mapping import NodeConnection
|
11
|
+
from code_loader.contract.mapping import NodeConnection # type: ignore
|
12
12
|
from keras import Model # type: ignore
|
13
13
|
from keras_data_format_converter import convert_channels_first_to_last # type: ignore
|
14
14
|
from leap_model_rebuilder import rebuild_model # type: ignore
|
@@ -21,7 +21,9 @@ from tensorflow.keras.models import load_model # type: ignore
|
|
21
21
|
from leap_model_parser.contract.graph import Node, InputInfo
|
22
22
|
from leap_model_parser.contract.importmodelresponse import ImportModelTypeEnum
|
23
23
|
from leap_model_parser.keras_json_model_import import KerasJsonModelImport
|
24
|
-
from leap_model_parser.leap_graph_editor import LeapGraphEditor
|
24
|
+
from leap_model_parser.leap_graph_editor import LeapGraphEditor # type: ignore
|
25
|
+
|
26
|
+
from typing import Callable, Optional, List, Dict, Tuple, Type
|
25
27
|
|
26
28
|
onnx_imported = False
|
27
29
|
package_name = 'onnx'
|
@@ -33,7 +35,7 @@ if spec is not None:
|
|
33
35
|
|
34
36
|
class ModelParser:
|
35
37
|
def __init__(self, should_transform_inputs_and_outputs=False,
|
36
|
-
custom_layers
|
38
|
+
custom_layers=None,
|
37
39
|
mapping_connections: Optional[List[NodeConnection]] = None):
|
38
40
|
self._should_transform_inputs_and_outputs = should_transform_inputs_and_outputs
|
39
41
|
self.custom_layers = custom_layers
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "leap-model-parser"
|
3
|
-
version = "0.1.
|
3
|
+
version = "0.1.187"
|
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.
|
25
|
+
code-loader = "1.0.89"
|
26
26
|
|
27
27
|
[tool.poetry.dev-dependencies]
|
28
28
|
pytest = "^7.1.1"
|
File without changes
|
File without changes
|
File without changes
|
{leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/contract/__init__.py
RENAMED
File without changes
|
{leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/contract/graph.py
RENAMED
File without changes
|
File without changes
|
{leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/contract/nodedata.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{leap_model_parser-0.1.185.dev12 → leap_model_parser-0.1.187}/leap_model_parser/utils/__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
|
File without changes
|