code-loader 1.0.174.dev3__tar.gz → 1.0.174.dev5__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.174.dev3 → code_loader-1.0.174.dev5}/PKG-INFO +1 -1
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/inner_leap_binder/leapbinder_decorators.py +21 -20
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/leaploader.py +33 -1
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/leaploaderbase.py +10 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/pyproject.toml +1 -1
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/LICENSE +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/README.md +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/__init__.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/contract/__init__.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/contract/datasetclasses.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/contract/enums.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/contract/exceptions.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/contract/mapping.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/contract/responsedataclasses.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/contract/visualizer_classes.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/default_losses.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/default_metrics.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/experiment_api/__init__.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/experiment_api/api.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/experiment_api/cli_config_utils.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/experiment_api/client.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/experiment_api/epoch.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/experiment_api/experiment.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/experiment_api/experiment_context.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/experiment_api/types.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/experiment_api/utils.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/inner_leap_binder/__init__.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/inner_leap_binder/leapbinder.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/mixpanel_tracker.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/plot_functions/__init__.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/plot_functions/plot_functions.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/plot_functions/visualize.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/utils.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/visualizers/__init__.py +0 -0
- {code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/visualizers/default_visualizers.py +0 -0
|
@@ -879,7 +879,8 @@ def tensorleap_custom_metric(name: str,
|
|
|
879
879
|
|
|
880
880
|
def tensorleap_custom_instances_metric(name: str,
|
|
881
881
|
direction: Union[MetricDirection, Dict[str, MetricDirection]] = _UNSET,
|
|
882
|
-
compute_insights: Optional[Union[bool, Dict[str, bool]]] = None
|
|
882
|
+
compute_insights: Optional[Union[bool, Dict[str, bool]]] = None,
|
|
883
|
+
connects_to=None):
|
|
883
884
|
name_to_unique_name = defaultdict(set)
|
|
884
885
|
|
|
885
886
|
def decorating_function(
|
|
@@ -942,21 +943,21 @@ def tensorleap_custom_instances_metric(name: str,
|
|
|
942
943
|
err_message +
|
|
943
944
|
f"Invalid type for compute_insights['{k}']: expected bool, got type {type(v).__name__}."
|
|
944
945
|
)
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
946
|
+
if connects_to is not None:
|
|
947
|
+
valid_types = (str, list, tuple, set)
|
|
948
|
+
if not isinstance(connects_to, valid_types):
|
|
949
|
+
raise TypeError(
|
|
950
|
+
err_message +
|
|
951
|
+
f"`connects_to` must be one of {valid_types}, got type {type(connects_to).__name__}."
|
|
952
|
+
)
|
|
953
|
+
if isinstance(connects_to, (list, tuple, set)):
|
|
954
|
+
invalid_elems = [f"{type(e).__name__}" for e in connects_to if not isinstance(e, str)]
|
|
955
|
+
if invalid_elems:
|
|
956
|
+
raise TypeError(
|
|
957
|
+
err_message +
|
|
958
|
+
f"All elements in `connects_to` must be strings, "
|
|
959
|
+
f"but found element types: {invalid_elems}."
|
|
960
|
+
)
|
|
960
961
|
|
|
961
962
|
_validate_decorators_signature()
|
|
962
963
|
|
|
@@ -1038,9 +1039,9 @@ def tensorleap_custom_instances_metric(name: str,
|
|
|
1038
1039
|
|
|
1039
1040
|
leap_binder.add_custom_instance_metric(inner_without_validate, name, direction, compute_insights)
|
|
1040
1041
|
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1042
|
+
if connects_to is not None:
|
|
1043
|
+
arg_names = leap_binder.setup_container.instance_metrics[-1].metric_handler_data.arg_names
|
|
1044
|
+
_add_mapping_connections(connects_to, arg_names, NodeMappingType.Metric, name)
|
|
1044
1045
|
|
|
1045
1046
|
def inner(*args, **kwargs):
|
|
1046
1047
|
if not _call_from_tl_platform:
|
|
@@ -1071,7 +1072,7 @@ def tensorleap_custom_instances_metric(name: str,
|
|
|
1071
1072
|
|
|
1072
1073
|
return None
|
|
1073
1074
|
|
|
1074
|
-
mapping_inner.arg_names = leap_binder.setup_container.
|
|
1075
|
+
mapping_inner.arg_names = leap_binder.setup_container.instance_metrics[-1].metric_handler_data.arg_names
|
|
1075
1076
|
mapping_inner.name = name
|
|
1076
1077
|
|
|
1077
1078
|
def final_inner(*args, **kwargs):
|
|
@@ -16,7 +16,7 @@ from code_loader.contract.datasetclasses import DatasetSample, DatasetBaseHandle
|
|
|
16
16
|
PreprocessResponse, VisualizerHandler, LeapData, \
|
|
17
17
|
PredictionTypeHandler, MetadataHandler, CustomLayerHandler, MetricHandler, VisualizerHandlerData, MetricHandlerData, \
|
|
18
18
|
MetricCallableReturnType, CustomLossHandlerData, CustomLossHandler, RawInputsForHeatmap, SamplePreprocessResponse, \
|
|
19
|
-
ElementInstance, custom_latent_space_attribute, DatasetIntegrationSetup
|
|
19
|
+
ElementInstance, custom_latent_space_attribute, DatasetIntegrationSetup, InstanceMetricHandler
|
|
20
20
|
from code_loader.contract.enums import DataStateEnum, TestingSectionEnum, DataStateType, DatasetMetadataType
|
|
21
21
|
from code_loader.contract.exceptions import DatasetScriptException
|
|
22
22
|
from code_loader.contract.responsedataclasses import DatasetIntegParseResult, DatasetTestResultPayload, \
|
|
@@ -109,6 +109,24 @@ class LeapLoader(LeapLoaderBase):
|
|
|
109
109
|
for metric_handler in setup.metrics
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
+
@lru_cache()
|
|
113
|
+
def instance_metric_by_name(self) -> Dict[str, MetricHandlerData]:
|
|
114
|
+
self.exec_script()
|
|
115
|
+
setup = global_leap_binder.setup_container
|
|
116
|
+
return {
|
|
117
|
+
handler.metric_handler_data.name: handler.metric_handler_data
|
|
118
|
+
for handler in setup.instance_metrics
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@lru_cache()
|
|
122
|
+
def _instance_metric_handler_by_name(self) -> Dict[str, InstanceMetricHandler]:
|
|
123
|
+
self.exec_script()
|
|
124
|
+
setup = global_leap_binder.setup_container
|
|
125
|
+
return {
|
|
126
|
+
handler.metric_handler_data.name: handler
|
|
127
|
+
for handler in setup.instance_metrics
|
|
128
|
+
}
|
|
129
|
+
|
|
112
130
|
@lru_cache()
|
|
113
131
|
def visualizer_by_name(self) -> Dict[str, VisualizerHandlerData]:
|
|
114
132
|
self.exec_script()
|
|
@@ -292,6 +310,20 @@ class LeapLoader(LeapLoaderBase):
|
|
|
292
310
|
|
|
293
311
|
return metric_handler.function(**input_tensors_by_arg_name)
|
|
294
312
|
|
|
313
|
+
def run_instance_metric(self, metric_name: str, sample_ids: np.array, state: DataStateEnum,
|
|
314
|
+
input_tensors_by_arg_name: Dict[str, npt.NDArray[np.float32]]
|
|
315
|
+
) -> Dict[int, npt.NDArray[np.float32]]:
|
|
316
|
+
self._preprocess_result()
|
|
317
|
+
|
|
318
|
+
handler = self._instance_metric_handler_by_name()[metric_name]
|
|
319
|
+
preprocess_response_arg_name = self._get_preprocess_response_arg_name(handler.function)
|
|
320
|
+
|
|
321
|
+
if preprocess_response_arg_name is not None:
|
|
322
|
+
input_tensors_by_arg_name[preprocess_response_arg_name] = SamplePreprocessResponse(
|
|
323
|
+
sample_ids, self._preprocess_result()[state])
|
|
324
|
+
|
|
325
|
+
return handler.function(**input_tensors_by_arg_name)
|
|
326
|
+
|
|
295
327
|
@staticmethod
|
|
296
328
|
def _get_preprocess_response_arg_name(
|
|
297
329
|
func: Callable) -> Optional[str]:
|
|
@@ -44,6 +44,10 @@ class LeapLoaderBase:
|
|
|
44
44
|
def metric_by_name(self) -> Dict[str, MetricHandlerData]:
|
|
45
45
|
pass
|
|
46
46
|
|
|
47
|
+
@abstractmethod
|
|
48
|
+
def instance_metric_by_name(self) -> Dict[str, MetricHandlerData]:
|
|
49
|
+
pass
|
|
50
|
+
|
|
47
51
|
@abstractmethod
|
|
48
52
|
def visualizer_by_name(self) -> Dict[str, VisualizerHandlerData]:
|
|
49
53
|
pass
|
|
@@ -100,6 +104,12 @@ class LeapLoaderBase:
|
|
|
100
104
|
input_tensors_by_arg_name: Dict[str, npt.NDArray[np.float32]]) -> MetricCallableReturnType:
|
|
101
105
|
pass
|
|
102
106
|
|
|
107
|
+
@abstractmethod
|
|
108
|
+
def run_instance_metric(self, metric_name: str, sample_ids: np.array, state: DataStateEnum,
|
|
109
|
+
input_tensors_by_arg_name: Dict[str, npt.NDArray[np.float32]]
|
|
110
|
+
) -> Dict[int, npt.NDArray[np.float32]]:
|
|
111
|
+
pass
|
|
112
|
+
|
|
103
113
|
@abstractmethod
|
|
104
114
|
def run_custom_loss(self, custom_loss_name: str, sample_ids: np.array, state: DataStateEnum,
|
|
105
115
|
input_tensors_by_arg_name: Dict[str, npt.NDArray[np.float32]]):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/contract/datasetclasses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/contract/responsedataclasses.py
RENAMED
|
File without changes
|
{code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/contract/visualizer_classes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/experiment_api/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/experiment_api/cli_config_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/experiment_api/experiment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/inner_leap_binder/__init__.py
RENAMED
|
File without changes
|
{code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/inner_leap_binder/leapbinder.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/plot_functions/__init__.py
RENAMED
|
File without changes
|
{code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/plot_functions/plot_functions.py
RENAMED
|
File without changes
|
{code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/plot_functions/visualize.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.174.dev3 → code_loader-1.0.174.dev5}/code_loader/visualizers/default_visualizers.py
RENAMED
|
File without changes
|