code-loader 1.0.134__py3-none-any.whl → 1.0.134.dev1__py3-none-any.whl

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.

Potentially problematic release.


This version of code-loader might be problematic. Click here for more details.

@@ -3,6 +3,7 @@ from enum import Enum
3
3
  from code_loader.default_metrics import mean_absolute_percentage_error_dimension_reduced, \
4
4
  mean_absolute_error_dimension_reduced, mean_squared_logarithmic_error_dimension_reduced, \
5
5
  mean_squared_error_dimension_reduced, categorical_crossentropy, binary_crossentropy
6
+ from code_loader.inner_leap_binder.leapbinder_decorators import tensorleap_custom_loss
6
7
 
7
8
 
8
9
  class LossName(Enum):
@@ -22,3 +23,9 @@ loss_name_to_function = {
22
23
  LossName.CategoricalCrossentropy.name: categorical_crossentropy,
23
24
  LossName.BinaryCrossentropy.name: binary_crossentropy
24
25
  }
26
+
27
+
28
+ for loss_name, func in loss_name_to_function.items():
29
+ @tensorleap_custom_loss(loss_name)
30
+ def loss_func(ground_truth, prediction):
31
+ return func(ground_truth, prediction)
@@ -6,17 +6,7 @@ import numpy as np
6
6
 
7
7
  from code_loader.contract.datasetclasses import ConfusionMatrixElement # type: ignore
8
8
  from code_loader.contract.enums import ConfusionMatrixValue, MetricDirection # type: ignore
9
-
10
-
11
- class Metric(Enum):
12
- MeanSquaredError = 'MeanSquaredError'
13
- MeanSquaredLogarithmicError = 'MeanSquaredLogarithmicError'
14
- MeanAbsoluteError = 'MeanAbsoluteError'
15
- MeanAbsolutePercentageError = 'MeanAbsolutePercentageError'
16
- Accuracy = 'Accuracy'
17
- ConfusionMatrixClassification = 'ConfusionMatrixClassification'
18
- CategoricalCrossentropy = 'CategoricalCrossentropy'
19
- BinaryCrossentropy = 'BinaryCrossentropy'
9
+ from code_loader.inner_leap_binder.leapbinder_decorators import tensorleap_custom_metric
20
10
 
21
11
 
22
12
  def binary_crossentropy(ground_truth: np.array, prediction: np.array) -> np.array:
@@ -34,6 +24,7 @@ def categorical_crossentropy(ground_truth: np.array, prediction: np.array) -> np
34
24
  prediction = np.clip(prediction, epsilon, 1.0 - epsilon)
35
25
  return -(ground_truth * np.log(prediction)).sum(axis=1).astype(np.float32)
36
26
 
27
+
37
28
  def accuracy_reduced(ground_truth: np.array, prediction: np.array) -> np.array:
38
29
  ground_truth, prediction = flatten_non_batch_dims(ground_truth, prediction)
39
30
  return np.mean((np.round(prediction).astype(np.bool_) == ground_truth.astype(np.bool_)), axis=1)
@@ -88,6 +79,17 @@ def confusion_matrix_classification_metric(ground_truth, prediction) -> List[Lis
88
79
  return ret
89
80
 
90
81
 
82
+ class Metric(Enum):
83
+ MeanSquaredError = 'MeanSquaredError'
84
+ MeanSquaredLogarithmicError = 'MeanSquaredLogarithmicError'
85
+ MeanAbsoluteError = 'MeanAbsoluteError'
86
+ MeanAbsolutePercentageError = 'MeanAbsolutePercentageError'
87
+ Accuracy = 'Accuracy'
88
+ ConfusionMatrixClassification = 'ConfusionMatrixClassification'
89
+ CategoricalCrossentropy = 'CategoricalCrossentropy'
90
+ BinaryCrossentropy = 'BinaryCrossentropy'
91
+
92
+
91
93
  metrics_names_to_functions_and_direction = {
92
94
  Metric.MeanSquaredError.name: (mean_squared_error_dimension_reduced, MetricDirection.Downward),
93
95
  Metric.MeanSquaredLogarithmicError.name: (
@@ -100,3 +102,8 @@ metrics_names_to_functions_and_direction = {
100
102
  Metric.CategoricalCrossentropy.name: (categorical_crossentropy, MetricDirection.Downward),
101
103
  Metric.BinaryCrossentropy.name: (binary_crossentropy, MetricDirection.Downward)
102
104
  }
105
+
106
+ for metric_name, (func, direction) in metrics_names_to_functions_and_direction.items():
107
+ @tensorleap_custom_metric(metric_name, direction)
108
+ def metric_func(ground_truth, prediction):
109
+ return func(ground_truth, prediction)
@@ -1,8 +1,5 @@
1
1
  import inspect
2
- from typing import Callable, List, Optional, Dict, Any, Type, Union
3
-
4
- import numpy as np
5
- import numpy.typing as npt
2
+ from typing import Callable, Optional, Dict, Any, Type, Union
6
3
 
7
4
  from code_loader.contract.datasetclasses import SectionCallableInterface, InputHandler, \
8
5
  GroundTruthHandler, MetadataHandler, DatasetIntegrationSetup, VisualizerHandler, PreprocessResponse, \
@@ -12,17 +9,16 @@ from code_loader.contract.datasetclasses import SectionCallableInterface, InputH
12
9
  CustomMultipleReturnCallableInterfaceMultiArgs, DatasetBaseHandler, custom_latent_space_attribute, \
13
10
  RawInputsForHeatmap, VisualizerHandlerData, MetricHandlerData, CustomLossHandlerData, SamplePreprocessResponse, \
14
11
  ElementInstanceMasksHandler, InstanceCallableInterface, CustomLatentSpaceHandler
15
- from code_loader.contract.enums import LeapDataType, DataStateEnum, DataStateType, MetricDirection, DatasetMetadataType
12
+ from code_loader.contract.enums import DataStateEnum, DataStateType, DatasetMetadataType
16
13
  from code_loader.contract.mapping import NodeConnection, NodeMapping, NodeMappingType
17
14
  from code_loader.contract.responsedataclasses import DatasetTestResultPayload
18
15
  from code_loader.contract.visualizer_classes import map_leap_data_type_to_visualizer_class
19
- from code_loader.default_losses import loss_name_to_function
20
- from code_loader.default_metrics import metrics_names_to_functions_and_direction
16
+
17
+ from code_loader.default_metrics import *
18
+ from code_loader.visualizers.default_visualizers import *
19
+ from code_loader.default_losses import *
20
+
21
21
  from code_loader.utils import to_numpy_return_wrapper, get_shape, to_numpy_return_masks_wrapper
22
- from code_loader.visualizers.default_visualizers import DefaultVisualizer, \
23
- default_graph_visualizer, \
24
- default_image_visualizer, default_horizontal_bar_visualizer, default_word_visualizer, \
25
- default_image_mask_visualizer, default_text_mask_visualizer, default_raw_data_visualizer, default_video_visualizer
26
22
 
27
23
 
28
24
  mapping_runtime_mode_env_var_mame = '__MAPPING_RUNTIME_MODE__'
@@ -44,40 +40,13 @@ class LeapBinder:
44
40
  self.cache_container: Dict[str, Any] = {"word_to_index": {}}
45
41
  self._visualizer_names: List[str] = list()
46
42
  self._encoder_names: List[str] = list()
47
- self._extend_with_default_visualizers()
48
- self._extend_with_default_metrics()
49
- self._extend_with_default_losses()
50
43
 
51
44
  self.mapping_connections: List[NodeConnection] = []
52
45
  self.integration_test_func: Optional[Callable[[str, PreprocessResponse], Any]] = None
53
46
 
54
47
  self.batch_size_to_validate: Optional[int] = None
55
48
 
56
- def _extend_with_default_visualizers(self) -> None:
57
- self.set_visualizer(function=default_image_visualizer, name=DefaultVisualizer.Image.value,
58
- visualizer_type=LeapDataType.Image)
59
- self.set_visualizer(function=default_video_visualizer, name=DefaultVisualizer.Video.value,
60
- visualizer_type=LeapDataType.Video)
61
- self.set_visualizer(function=default_graph_visualizer, name=DefaultVisualizer.Graph.value,
62
- visualizer_type=LeapDataType.Graph)
63
- self.set_visualizer(function=default_raw_data_visualizer, name=DefaultVisualizer.RawData.value,
64
- visualizer_type=LeapDataType.Text)
65
- self.set_visualizer(function=default_horizontal_bar_visualizer, name=DefaultVisualizer.HorizontalBar.value,
66
- visualizer_type=LeapDataType.HorizontalBar)
67
- self.set_visualizer(function=default_word_visualizer, name=DefaultVisualizer.Text.value,
68
- visualizer_type=LeapDataType.Text)
69
- self.set_visualizer(function=default_image_mask_visualizer, name=DefaultVisualizer.ImageMask.value,
70
- visualizer_type=LeapDataType.ImageMask)
71
- self.set_visualizer(function=default_text_mask_visualizer, name=DefaultVisualizer.TextMask.value,
72
- visualizer_type=LeapDataType.TextMask)
73
-
74
- def _extend_with_default_losses(self) -> None:
75
- for loss_name, func in loss_name_to_function.items():
76
- self.add_custom_loss(func, loss_name)
77
-
78
- def _extend_with_default_metrics(self) -> None:
79
- for metric_name, (func, direction) in metrics_names_to_functions_and_direction.items():
80
- self.add_custom_metric(func, metric_name, direction)
49
+
81
50
 
82
51
  def set_visualizer(self, function: VisualizerCallableInterface,
83
52
  name: str,
@@ -65,6 +65,8 @@ def integration_test():
65
65
  finally:
66
66
  _called_from_inside_tl_integration_test_decorator = False
67
67
 
68
+ leap_binder.check()
69
+
68
70
  return inner
69
71
 
70
72
  return decorating_function
@@ -1,42 +1,36 @@
1
- from enum import Enum
2
-
3
1
  import numpy as np
4
2
  import numpy.typing as npt
5
3
 
4
+ from code_loader.contract.enums import LeapDataType
6
5
  from code_loader.contract.visualizer_classes import LeapImage, LeapGraph, LeapHorizontalBar, LeapText, \
7
6
  LeapImageMask, LeapTextMask, LeapVideo
7
+ from code_loader.inner_leap_binder.leapbinder_decorators import tensorleap_custom_visualizer
8
8
  from code_loader.utils import rescale_min_max
9
9
 
10
10
 
11
- class DefaultVisualizer(Enum):
12
- Image = 'Image'
13
- Video = 'Video'
14
- Graph = 'Graph'
15
- HorizontalBar = 'HorizontalBar'
16
- Text = 'Text'
17
- ImageMask = 'ImageMask'
18
- TextMask = 'TextMask'
19
- RawData = 'RawData'
20
11
 
21
12
 
13
+
14
+ @tensorleap_custom_visualizer('Image', LeapDataType.Image)
22
15
  def default_image_visualizer(data: npt.NDArray[np.float32]) -> LeapImage:
23
16
  rescaled_data = rescale_min_max(data[0])
24
17
  return LeapImage(rescaled_data)
25
18
 
26
-
19
+ @tensorleap_custom_visualizer('Video', LeapDataType.Video)
27
20
  def default_video_visualizer(data: npt.NDArray[np.float32]) -> LeapVideo:
28
21
  return LeapVideo(data[0])
29
22
 
30
-
23
+ @tensorleap_custom_visualizer('Graph', LeapDataType.Graph)
31
24
  def default_graph_visualizer(data: npt.NDArray[np.float32]) -> LeapGraph:
32
25
  return LeapGraph(data[0])
33
26
 
34
-
27
+ @tensorleap_custom_visualizer('HorizontalBar', LeapDataType.HorizontalBar)
35
28
  def default_horizontal_bar_visualizer(data: npt.NDArray[np.float32]) -> LeapHorizontalBar:
36
29
  labels = [str(index) for index in range(data.shape[-1])]
37
30
  return LeapHorizontalBar(data[0], labels)
38
31
 
39
32
 
33
+ @tensorleap_custom_visualizer('Text', LeapDataType.Text)
40
34
  def default_word_visualizer(data: npt.NDArray[np.float32]) -> LeapText:
41
35
  if len(data.shape) == 2 and data.shape[0] == 1:
42
36
  data = data[0]
@@ -45,11 +39,11 @@ def default_word_visualizer(data: npt.NDArray[np.float32]) -> LeapText:
45
39
  words = [str(index[0]) if type(index) is list else str(index) for index in data]
46
40
  return LeapText(words)
47
41
 
48
-
42
+ @tensorleap_custom_visualizer('RawData', LeapDataType.Text)
49
43
  def default_raw_data_visualizer(data: npt.NDArray[np.float32]) -> LeapText:
50
44
  return LeapText([str(data)])
51
45
 
52
-
46
+ @tensorleap_custom_visualizer('ImageMask', LeapDataType.ImageMask)
53
47
  def default_image_mask_visualizer(mask: npt.NDArray[np.float32], image: npt.NDArray[np.float32]) -> LeapImageMask:
54
48
  if image.shape[0] == 1:
55
49
  image = image[0]
@@ -68,6 +62,7 @@ def default_image_mask_visualizer(mask: npt.NDArray[np.float32], image: npt.NDAr
68
62
  return LeapImageMask(mask.astype(np.uint8), image.astype(np.float32), labels)
69
63
 
70
64
 
65
+ @tensorleap_custom_visualizer('TextMask', LeapDataType.TextMask)
71
66
  def default_text_mask_visualizer(mask: npt.NDArray[np.float32], text_data: npt.NDArray[np.float32]) -> LeapTextMask:
72
67
  mask = mask[0]
73
68
  text_data = text_data[0]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: code-loader
3
- Version: 1.0.134
3
+ Version: 1.0.134.dev1
4
4
  Summary:
5
5
  Home-page: https://github.com/tensorleap/code-loader
6
6
  License: MIT
@@ -7,8 +7,8 @@ code_loader/contract/exceptions.py,sha256=jWqu5i7t-0IG0jGRsKF4DjJdrsdpJjIYpUkN1F
7
7
  code_loader/contract/mapping.py,sha256=sWJhpng-IkOzQnWQdMT5w2ZZ3X1Z_OOzSwCLXIS7oxE,1446
8
8
  code_loader/contract/responsedataclasses.py,sha256=6-5DJkYBdXb3UB1eNidTTPPBIYxMjEoMdYDkp9VhH8o,4223
9
9
  code_loader/contract/visualizer_classes.py,sha256=Wz9eItmoRaKEHa3p0aW0Ypxx4_xUmaZyLBznnTuxwi0,15425
10
- code_loader/default_losses.py,sha256=NoOQym1106bDN5dcIk56Elr7ZG5quUHArqfP5-Nyxyo,1139
11
- code_loader/default_metrics.py,sha256=v16Mrt2Ze1tXPgfKywGVdRSrkaK4CKLNQztN1UdVqIY,5010
10
+ code_loader/default_losses.py,sha256=mfup6TruVUxU-M_v-TXSNihDDg6tIFjNlZMW19fyprI,1412
11
+ code_loader/default_metrics.py,sha256=StPWgd4Ok-h1Oac8QyNYLZPrM1ccP3wOze5tHWvggyY,5336
12
12
  code_loader/experiment_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  code_loader/experiment_api/api.py,sha256=a7wh6Hhe7IaVxu46eV2soSz-yxnmXG3ipU1BBtsEAaQ,2493
14
14
  code_loader/experiment_api/cli_config_utils.py,sha256=n6JMyNrquxql3KKxHhAP8jAzezlRT-PV2KWI95kKsm0,1140
@@ -20,8 +20,8 @@ code_loader/experiment_api/types.py,sha256=MY8xFARHwdVA7p4dxyhD60ShmttgTvb4qdp1o
20
20
  code_loader/experiment_api/utils.py,sha256=XZHtxge12TS4H4-8PjV3sKuhp8Ud6ojAiIzTZJEqBqc,3304
21
21
  code_loader/experiment_api/workingspace_config_utils.py,sha256=DLzXQCg4dgTV_YgaSbeTVzq-2ja_SQw4zi7LXwKL9cY,990
22
22
  code_loader/inner_leap_binder/__init__.py,sha256=koOlJyMNYzGbEsoIbXathSmQ-L38N_pEXH_HvL7beXU,99
23
- code_loader/inner_leap_binder/leapbinder.py,sha256=Q3D9yVM-GNEJfYRFvMV__BoZbcWOgnWKhrZXAv6Tu7o,33232
24
- code_loader/inner_leap_binder/leapbinder_decorators.py,sha256=lwucYBE7NVVF-JroG7IP17tg-hYRKiKtnEj-vR6RmNQ,49997
23
+ code_loader/inner_leap_binder/leapbinder.py,sha256=YFfYpZjje7rCf2uQpBPtuWt4tkKmczOvuKEouHsyaOc,30908
24
+ code_loader/inner_leap_binder/leapbinder_decorators.py,sha256=9gS1nttSiFHvzIIcdlBIt4vcLUjEOLel1YvUaT79pxI,50030
25
25
  code_loader/leaploader.py,sha256=85XUWd7Y8kup76xeqefgd8db7pGaeHMhE7QlmYlNFMw,29747
26
26
  code_loader/leaploaderbase.py,sha256=LIFcC6xo6V_iiGN3BjibXETu_l84EWM_WIOKAvkfTiM,4458
27
27
  code_loader/mixpanel_tracker.py,sha256=l9z_szKKQ7apEbdNZpGH1TKAiT_TsBHb9AQnePaWTyo,4942
@@ -30,8 +30,8 @@ code_loader/plot_functions/plot_functions.py,sha256=VyVWxd7R3lALIo2z8oZlYybbN0Ip
30
30
  code_loader/plot_functions/visualize.py,sha256=gsBAYYkwMh7jIpJeDMPS8G4CW-pxwx6LznoQIvi4vpo,657
31
31
  code_loader/utils.py,sha256=gXENTYpjdidq2dx0gVbXlErPeHoNs-4TYAZbLRe0y2c,2712
32
32
  code_loader/visualizers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- code_loader/visualizers/default_visualizers.py,sha256=onRnLE_TXfgLN4o52hQIOOhUcFexGlqJ3xSpQDVLuZM,2604
34
- code_loader-1.0.134.dist-info/LICENSE,sha256=qIwWjdspQeSMTtnFZBC8MuT-95L02FPvzRUdWFxrwJY,1067
35
- code_loader-1.0.134.dist-info/METADATA,sha256=mVMFzsGIBqVYW9CAqxFYQByWKwFKxAKLFwYCg40IlUU,1090
36
- code_loader-1.0.134.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
37
- code_loader-1.0.134.dist-info/RECORD,,
33
+ code_loader/visualizers/default_visualizers.py,sha256=JHcCJ9_GThbvQVyLQ8H--3yfZU7X0x99bAYigH7RfVw,3000
34
+ code_loader-1.0.134.dev1.dist-info/LICENSE,sha256=qIwWjdspQeSMTtnFZBC8MuT-95L02FPvzRUdWFxrwJY,1067
35
+ code_loader-1.0.134.dev1.dist-info/METADATA,sha256=69D87OK4h_zzQWDQ2RLCB0bAvKyGe6mXT9_b9FE2pHw,1095
36
+ code_loader-1.0.134.dev1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
37
+ code_loader-1.0.134.dev1.dist-info/RECORD,,