code-loader 1.0.87.dev1__tar.gz → 1.0.87.dev3__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.
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/PKG-INFO +1 -1
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/contract/mapping.py +11 -1
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/contract/responsedataclasses.py +8 -1
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/inner_leap_binder/leapbinder_decorators.py +25 -11
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/leaploader.py +2 -1
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/pyproject.toml +1 -1
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/LICENSE +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/README.md +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/__init__.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/contract/__init__.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/contract/datasetclasses.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/contract/enums.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/contract/exceptions.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/contract/visualizer_classes.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/default_losses.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/default_metrics.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/experiment_api/__init__.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/experiment_api/api.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/experiment_api/cli_config_utils.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/experiment_api/client.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/experiment_api/epoch.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/experiment_api/experiment.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/experiment_api/experiment_context.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/experiment_api/types.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/experiment_api/utils.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/inner_leap_binder/__init__.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/inner_leap_binder/leapbinder.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/leaploaderbase.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/utils.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/visualizers/__init__.py +0 -0
- {code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/visualizers/default_visualizers.py +0 -0
@@ -39,4 +39,14 @@ class NodeMapping:
|
|
39
39
|
class NodeConnection:
|
40
40
|
node: NodeMapping
|
41
41
|
node_inputs: Optional[Dict[str, NodeMapping]]
|
42
|
-
prediction_type_name: Optional[str] = None
|
42
|
+
prediction_type_name: Optional[str] = None
|
43
|
+
|
44
|
+
|
45
|
+
def leap_output(idx):
|
46
|
+
def dummy():
|
47
|
+
return None
|
48
|
+
|
49
|
+
node_mapping_type = NodeMappingType(f'Prediction{str(idx)}')
|
50
|
+
dummy.node_mapping = NodeMapping('', node_mapping_type)
|
51
|
+
|
52
|
+
return dummy
|
{code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/contract/responsedataclasses.py
RENAMED
@@ -2,6 +2,7 @@ from typing import List, Optional, Dict, Any, Union
|
|
2
2
|
|
3
3
|
from dataclasses import dataclass, field
|
4
4
|
from code_loader.contract.enums import DatasetMetadataType, LeapDataType
|
5
|
+
from code_loader.contract.mapping import NodeConnection
|
5
6
|
|
6
7
|
|
7
8
|
@dataclass
|
@@ -74,7 +75,6 @@ class DatasetSetup:
|
|
74
75
|
metadata: List[DatasetMetadataInstance]
|
75
76
|
outputs: List[DatasetOutputInstance]
|
76
77
|
visualizers: List[VisualizerInstance]
|
77
|
-
prediction_types: List[PredictionTypeInstance]
|
78
78
|
custom_losses: List[CustomLossInstance]
|
79
79
|
metrics: List[MetricInstance] = field(default_factory=list)
|
80
80
|
|
@@ -120,6 +120,12 @@ class BoundingBox:
|
|
120
120
|
metadata: Optional[Dict[str, Union[str, int, float]]] = None
|
121
121
|
|
122
122
|
|
123
|
+
|
124
|
+
@dataclass
|
125
|
+
class EngineFileContract:
|
126
|
+
node_connections: Optional[List[NodeConnection]] = None
|
127
|
+
|
128
|
+
|
123
129
|
@dataclass
|
124
130
|
class DatasetIntegParseResult:
|
125
131
|
payloads: List[DatasetTestResultPayload]
|
@@ -129,3 +135,4 @@ class DatasetIntegParseResult:
|
|
129
135
|
model_setup: Optional[ModelSetup] = None
|
130
136
|
general_error: Optional[str] = None
|
131
137
|
print_log: Optional[str] = None
|
138
|
+
engine_file_contract: Optional[EngineFileContract] = None
|
@@ -16,6 +16,16 @@ from code_loader.contract.visualizer_classes import LeapImage, LeapImageMask, Le
|
|
16
16
|
LeapHorizontalBar, LeapImageWithBBox, LeapImageWithHeatmap
|
17
17
|
|
18
18
|
|
19
|
+
def _add_mapping_connections(connects_to, arg_names, node_mapping_type, name):
|
20
|
+
for user_unique_name, connection_destinations in connects_to.items():
|
21
|
+
main_node_mapping = NodeMapping(name, node_mapping_type, user_unique_name, arg_names=arg_names)
|
22
|
+
node_inputs = {}
|
23
|
+
for arg_name, destination in zip(arg_names, connection_destinations):
|
24
|
+
node_inputs[arg_name] = destination.node_mapping
|
25
|
+
|
26
|
+
leap_binder.mapping_connections.append(NodeConnection(main_node_mapping, node_inputs))
|
27
|
+
|
28
|
+
|
19
29
|
def tensorleap_custom_metric(name: str,
|
20
30
|
direction: Union[MetricDirection, Dict[str, MetricDirection]] = MetricDirection.Downward,
|
21
31
|
compute_insights: Optional[Union[bool, Dict[str, bool]]] = None,
|
@@ -32,15 +42,7 @@ def tensorleap_custom_metric(name: str,
|
|
32
42
|
|
33
43
|
if connects_to is not None:
|
34
44
|
arg_names = leap_binder.setup_container.metrics[-1].metric_handler_data.arg_names
|
35
|
-
|
36
|
-
main_node_mapping = NodeMapping(name, NodeMappingType.Metric, user_unique_name, arg_names=arg_names)
|
37
|
-
node_inputs = {}
|
38
|
-
for arg_name, destination in zip(arg_names, connection_destinations):
|
39
|
-
node_inputs[arg_name] = destination.node_mapping
|
40
|
-
|
41
|
-
leap_binder.mapping_connections.append(NodeConnection(main_node_mapping, node_inputs))
|
42
|
-
|
43
|
-
|
45
|
+
_add_mapping_connections(connects_to, arg_names, NodeMappingType.Metric, name)
|
44
46
|
|
45
47
|
def _validate_input_args(*args, **kwargs) -> None:
|
46
48
|
for i, arg in enumerate(args):
|
@@ -130,7 +132,8 @@ def tensorleap_custom_metric(name: str,
|
|
130
132
|
|
131
133
|
|
132
134
|
def tensorleap_custom_visualizer(name: str, visualizer_type: LeapDataType,
|
133
|
-
heatmap_function: Optional[Callable[..., npt.NDArray[np.float32]]] = None
|
135
|
+
heatmap_function: Optional[Callable[..., npt.NDArray[np.float32]]] = None,
|
136
|
+
connects_to=None):
|
134
137
|
def decorating_function(user_function: VisualizerCallableInterface):
|
135
138
|
for viz_handler in leap_binder.setup_container.visualizers:
|
136
139
|
if viz_handler.visualizer_handler_data.name == name:
|
@@ -139,6 +142,10 @@ def tensorleap_custom_visualizer(name: str, visualizer_type: LeapDataType,
|
|
139
142
|
|
140
143
|
leap_binder.set_visualizer(user_function, name, visualizer_type, heatmap_function)
|
141
144
|
|
145
|
+
if connects_to is not None:
|
146
|
+
arg_names = leap_binder.setup_container.visualizers[-1].visualizer_handler_data.arg_names
|
147
|
+
_add_mapping_connections(connects_to, arg_names, NodeMappingType.Visualizer, name)
|
148
|
+
|
142
149
|
def _validate_input_args(*args, **kwargs):
|
143
150
|
for i, arg in enumerate(args):
|
144
151
|
assert isinstance(arg, (np.ndarray, SamplePreprocessResponse)), (
|
@@ -328,6 +335,8 @@ def tensorleap_input_encoder(name: str, channel_dim=-1):
|
|
328
335
|
_validate_result(result)
|
329
336
|
return result
|
330
337
|
|
338
|
+
inner.node_mapping = NodeMapping(name, NodeMappingType.Input)
|
339
|
+
|
331
340
|
return inner
|
332
341
|
|
333
342
|
return decorating_function
|
@@ -377,7 +386,7 @@ def tensorleap_gt_encoder(name: str):
|
|
377
386
|
return decorating_function
|
378
387
|
|
379
388
|
|
380
|
-
def tensorleap_custom_loss(name: str):
|
389
|
+
def tensorleap_custom_loss(name: str, connects_to=None):
|
381
390
|
def decorating_function(user_function: CustomCallableInterface):
|
382
391
|
for loss_handler in leap_binder.setup_container.custom_loss_handlers:
|
383
392
|
if loss_handler.custom_loss_handler_data.name == name:
|
@@ -386,6 +395,11 @@ def tensorleap_custom_loss(name: str):
|
|
386
395
|
|
387
396
|
leap_binder.add_custom_loss(user_function, name)
|
388
397
|
|
398
|
+
if connects_to is not None:
|
399
|
+
arg_names = leap_binder.setup_container.custom_loss_handlers[-1].custom_loss_handler_data.arg_names
|
400
|
+
_add_mapping_connections(connects_to, arg_names, NodeMappingType.CustomLoss, name)
|
401
|
+
|
402
|
+
|
389
403
|
valid_types = (np.ndarray, SamplePreprocessResponse)
|
390
404
|
try:
|
391
405
|
import tensorflow as tf
|
@@ -179,7 +179,8 @@ class LeapLoader(LeapLoaderBase):
|
|
179
179
|
return DatasetIntegParseResult(is_valid=is_valid, payloads=test_payloads,
|
180
180
|
is_valid_for_model=is_valid_for_model, setup=setup_response,
|
181
181
|
model_setup=model_setup, general_error=general_error,
|
182
|
-
print_log=print_log
|
182
|
+
print_log=print_log,
|
183
|
+
engine_file_contract=global_leap_binder.mapping_connections)
|
183
184
|
|
184
185
|
def _check_preprocess(self) -> DatasetTestResultPayload:
|
185
186
|
test_result = DatasetTestResultPayload('preprocess')
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/contract/visualizer_classes.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/experiment_api/cli_config_utils.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/experiment_api/experiment.py
RENAMED
File without changes
|
{code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/experiment_api/experiment_context.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/inner_leap_binder/__init__.py
RENAMED
File without changes
|
{code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/inner_leap_binder/leapbinder.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{code_loader-1.0.87.dev1 → code_loader-1.0.87.dev3}/code_loader/visualizers/default_visualizers.py
RENAMED
File without changes
|