code-loader 1.0.61.dev3__tar.gz → 1.0.61.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 (30) hide show
  1. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/PKG-INFO +1 -1
  2. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/contract/datasetclasses.py +7 -2
  3. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/inner_leap_binder/leapbinder.py +2 -2
  4. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/leaploader.py +23 -5
  5. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/leaploaderbase.py +10 -5
  6. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/pyproject.toml +1 -1
  7. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/LICENSE +0 -0
  8. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/README.md +0 -0
  9. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/__init__.py +0 -0
  10. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/code_inegration_processes_manager.py +0 -0
  11. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/contract/__init__.py +0 -0
  12. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/contract/enums.py +0 -0
  13. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/contract/exceptions.py +0 -0
  14. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/contract/responsedataclasses.py +0 -0
  15. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/contract/visualizer_classes.py +0 -0
  16. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/experiment_api/__init__.py +0 -0
  17. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/experiment_api/api.py +0 -0
  18. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/experiment_api/cli_config_utils.py +0 -0
  19. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/experiment_api/client.py +0 -0
  20. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/experiment_api/epoch.py +0 -0
  21. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/experiment_api/experiment.py +0 -0
  22. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/experiment_api/experiment_context.py +0 -0
  23. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/experiment_api/types.py +0 -0
  24. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/experiment_api/utils.py +0 -0
  25. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
  26. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/inner_leap_binder/__init__.py +0 -0
  27. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/inner_leap_binder/leapbinder_decorators.py +0 -0
  28. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/utils.py +0 -0
  29. {code_loader-1.0.61.dev3 → code_loader-1.0.61.dev5}/code_loader/visualizers/__init__.py +0 -0
  30. {code_loader-1.0.61.dev3 → code_loader-1.0.61.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.61.dev3
3
+ Version: 1.0.61.dev5
4
4
  Summary:
5
5
  Home-page: https://github.com/tensorleap/code-loader
6
6
  License: MIT
@@ -117,12 +117,17 @@ MetricCallableReturnType = Union[Any, List[List[ConfusionMatrixElement]]]
117
117
 
118
118
 
119
119
  @dataclass
120
- class CustomLossHandler:
120
+ class CustomLossHandlerData:
121
121
  name: str
122
- function: CustomCallableInterface
123
122
  arg_names: List[str]
124
123
 
125
124
 
125
+ @dataclass
126
+ class CustomLossHandler:
127
+ custom_loss_handler_data: CustomLossHandlerData
128
+ function: CustomCallableInterface
129
+
130
+
126
131
  @dataclass
127
132
  class MetricHandlerData:
128
133
  name: str
@@ -10,7 +10,7 @@ from code_loader.contract.datasetclasses import SectionCallableInterface, InputH
10
10
  MetadataSectionCallableInterface, UnlabeledDataPreprocessHandler, CustomLayerHandler, MetricHandler, \
11
11
  CustomCallableInterfaceMultiArgs, ConfusionMatrixCallableInterfaceMultiArgs, LeapData, \
12
12
  CustomMultipleReturnCallableInterfaceMultiArgs, DatasetBaseHandler, custom_latent_space_attribute, \
13
- RawInputsForHeatmap, VisualizerHandlerData, MetricHandlerData
13
+ RawInputsForHeatmap, VisualizerHandlerData, MetricHandlerData, CustomLossHandlerData
14
14
  from code_loader.contract.enums import LeapDataType, DataStateEnum, DataStateType, MetricDirection
15
15
  from code_loader.contract.responsedataclasses import DatasetTestResultPayload
16
16
  from code_loader.contract.visualizer_classes import map_leap_data_type_to_visualizer_class
@@ -226,7 +226,7 @@ class LeapBinder:
226
226
  leap_binder.add_custom_loss(custom_loss_function, name='custom_loss')
227
227
  """
228
228
  arg_names = inspect.getfullargspec(function)[0]
229
- self.setup_container.custom_loss_handlers.append(CustomLossHandler(name, function, arg_names))
229
+ self.setup_container.custom_loss_handlers.append(CustomLossHandler(CustomLossHandlerData(name, arg_names), function))
230
230
 
231
231
  def add_custom_metric(self,
232
232
  function: Union[CustomCallableInterfaceMultiArgs,
@@ -11,8 +11,9 @@ import numpy as np
11
11
  import numpy.typing as npt
12
12
 
13
13
  from code_loader.contract.datasetclasses import DatasetSample, DatasetBaseHandler, GroundTruthHandler, \
14
- PreprocessResponse, VisualizerHandler, LeapData, CustomLossHandler, \
15
- PredictionTypeHandler, MetadataHandler, CustomLayerHandler, MetricHandler, VisualizerHandlerData, MetricHandlerData
14
+ PreprocessResponse, VisualizerHandler, LeapData, \
15
+ PredictionTypeHandler, MetadataHandler, CustomLayerHandler, MetricHandler, VisualizerHandlerData, MetricHandlerData, \
16
+ MetricCallableReturnType, CustomLossHandlerData, CustomLossHandler
16
17
  from code_loader.contract.enums import DataStateEnum, TestingSectionEnum, DataStateType, DatasetMetadataType
17
18
  from code_loader.contract.exceptions import DatasetScriptException
18
19
  from code_loader.contract.responsedataclasses import DatasetIntegParseResult, DatasetTestResultPayload, \
@@ -101,7 +102,16 @@ class LeapLoader(LeapLoaderBase):
101
102
  }
102
103
 
103
104
  @lru_cache()
104
- def custom_loss_by_name(self) -> Dict[str, CustomLossHandler]:
105
+ def custom_loss_by_name(self) -> Dict[str, CustomLossHandlerData]:
106
+ self.exec_script()
107
+ setup = global_leap_binder.setup_container
108
+ return {
109
+ custom_loss_handler.name: custom_loss_handler.custom_loss_handler_data
110
+ for custom_loss_handler in setup.custom_loss_handlers
111
+ }
112
+
113
+ @lru_cache()
114
+ def _custom_loss_handler_by_name(self) -> Dict[str, CustomLossHandler]:
105
115
  self.exec_script()
106
116
  setup = global_leap_binder.setup_container
107
117
  return {
@@ -217,8 +227,16 @@ class LeapLoader(LeapLoaderBase):
217
227
  all_dataset_base_handlers.extend(global_leap_binder.setup_container.metadata)
218
228
  return all_dataset_base_handlers
219
229
 
220
- def run_visualizer(self, visualizer_name: str, input_tensors_by_arg_name: Dict[str, npt.NDArray[np.float32]],
221
- ) -> LeapData:
230
+ def run_metric(self, metric_name: str,
231
+ input_tensors_by_arg_name: Dict[str, npt.NDArray[np.float32]]) -> MetricCallableReturnType:
232
+ self._preprocess_result()
233
+ return self._metric_handler_by_name()[metric_name].function(**input_tensors_by_arg_name)
234
+
235
+ def run_custom_loss(self, custom_loss_name: str,
236
+ input_tensors_by_arg_name: Dict[str, npt.NDArray[np.float32]]):
237
+ return self._custom_loss_handler_by_name()[custom_loss_name].function(**input_tensors_by_arg_name)
238
+
239
+ def run_visualizer(self, visualizer_name: str, input_tensors_by_arg_name: Dict[str, npt.NDArray[np.float32]]) -> LeapData:
222
240
  # running preprocessing to sync preprocessing in main thread (can be valuable when preprocess is filling a
223
241
  # global param that visualizer is using)
224
242
  self._preprocess_result()
@@ -7,8 +7,9 @@ from typing import Dict, List, Union, Type
7
7
  import numpy as np
8
8
  import numpy.typing as npt
9
9
 
10
- from code_loader.contract.datasetclasses import DatasetSample, LeapData, CustomLossHandler, \
11
- PredictionTypeHandler, CustomLayerHandler, VisualizerHandlerData, MetricHandlerData
10
+ from code_loader.contract.datasetclasses import DatasetSample, LeapData, \
11
+ PredictionTypeHandler, CustomLayerHandler, VisualizerHandlerData, MetricHandlerData, MetricCallableReturnType, \
12
+ CustomLossHandlerData
12
13
  from code_loader.contract.enums import DataStateEnum
13
14
  from code_loader.contract.responsedataclasses import DatasetIntegParseResult, DatasetTestResultPayload, \
14
15
  DatasetSetup, ModelSetup
@@ -28,7 +29,7 @@ class LeapLoaderBase:
28
29
  pass
29
30
 
30
31
  @abstractmethod
31
- def custom_loss_by_name(self) -> Dict[str, CustomLossHandler]:
32
+ def custom_loss_by_name(self) -> Dict[str, CustomLossHandlerData]:
32
33
  pass
33
34
 
34
35
  @abstractmethod
@@ -48,8 +49,12 @@ class LeapLoaderBase:
48
49
  pass
49
50
 
50
51
  @abstractmethod
51
- def run_visualizer(self, visualizer_name: str, input_tensors_by_arg_name: Dict[str, npt.NDArray[np.float32]],
52
- ) -> LeapData:
52
+ def run_visualizer(self, visualizer_name: str, input_tensors_by_arg_name: Dict[str, npt.NDArray[np.float32]]) -> LeapData:
53
+ pass
54
+
55
+ @abstractmethod
56
+ def run_metric(self, metric_name: str,
57
+ input_tensors_by_arg_name: Dict[str, npt.NDArray[np.float32]]) -> MetricCallableReturnType:
53
58
  pass
54
59
 
55
60
  @abstractmethod
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "code-loader"
3
- version = "1.0.61.dev3"
3
+ version = "1.0.61.dev5"
4
4
  description = ""
5
5
  authors = ["dorhar <doron.harnoy@tensorleap.ai>"]
6
6
  license = "MIT"