code-loader 1.0.174.dev4__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.
Files changed (36) hide show
  1. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/PKG-INFO +1 -1
  2. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/inner_leap_binder/leapbinder_decorators.py +2 -2
  3. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/leaploader.py +33 -1
  4. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/leaploaderbase.py +10 -0
  5. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/pyproject.toml +1 -1
  6. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/LICENSE +0 -0
  7. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/README.md +0 -0
  8. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/__init__.py +0 -0
  9. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/contract/__init__.py +0 -0
  10. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/contract/datasetclasses.py +0 -0
  11. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/contract/enums.py +0 -0
  12. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/contract/exceptions.py +0 -0
  13. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/contract/mapping.py +0 -0
  14. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/contract/responsedataclasses.py +0 -0
  15. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/contract/visualizer_classes.py +0 -0
  16. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/default_losses.py +0 -0
  17. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/default_metrics.py +0 -0
  18. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/experiment_api/__init__.py +0 -0
  19. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/experiment_api/api.py +0 -0
  20. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/experiment_api/cli_config_utils.py +0 -0
  21. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/experiment_api/client.py +0 -0
  22. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/experiment_api/epoch.py +0 -0
  23. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/experiment_api/experiment.py +0 -0
  24. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/experiment_api/experiment_context.py +0 -0
  25. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/experiment_api/types.py +0 -0
  26. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/experiment_api/utils.py +0 -0
  27. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
  28. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/inner_leap_binder/__init__.py +0 -0
  29. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/inner_leap_binder/leapbinder.py +0 -0
  30. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/mixpanel_tracker.py +0 -0
  31. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/plot_functions/__init__.py +0 -0
  32. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/plot_functions/plot_functions.py +0 -0
  33. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/plot_functions/visualize.py +0 -0
  34. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/utils.py +0 -0
  35. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/visualizers/__init__.py +0 -0
  36. {code_loader-1.0.174.dev4 → code_loader-1.0.174.dev5}/code_loader/visualizers/default_visualizers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: code-loader
3
- Version: 1.0.174.dev4
3
+ Version: 1.0.174.dev5
4
4
  Summary:
5
5
  Home-page: https://github.com/tensorleap/code-loader
6
6
  License: MIT
@@ -1040,7 +1040,7 @@ def tensorleap_custom_instances_metric(name: str,
1040
1040
  leap_binder.add_custom_instance_metric(inner_without_validate, name, direction, compute_insights)
1041
1041
 
1042
1042
  if connects_to is not None:
1043
- arg_names = leap_binder.setup_container.metrics[-1].metric_handler_data.arg_names
1043
+ arg_names = leap_binder.setup_container.instance_metrics[-1].metric_handler_data.arg_names
1044
1044
  _add_mapping_connections(connects_to, arg_names, NodeMappingType.Metric, name)
1045
1045
 
1046
1046
  def inner(*args, **kwargs):
@@ -1072,7 +1072,7 @@ def tensorleap_custom_instances_metric(name: str,
1072
1072
 
1073
1073
  return None
1074
1074
 
1075
- mapping_inner.arg_names = leap_binder.setup_container.metrics[-1].metric_handler_data.arg_names
1075
+ mapping_inner.arg_names = leap_binder.setup_container.instance_metrics[-1].metric_handler_data.arg_names
1076
1076
  mapping_inner.name = name
1077
1077
 
1078
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]]):
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "code-loader"
3
- version = "1.0.174.dev4"
3
+ version = "1.0.174.dev5"
4
4
  description = ""
5
5
  authors = ["dorhar <doron.harnoy@tensorleap.ai>"]
6
6
  license = "MIT"