code-loader 1.0.134__tar.gz → 1.0.134.dev1__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.
Potentially problematic release.
This version of code-loader might be problematic. Click here for more details.
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/PKG-INFO +1 -1
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/default_losses.py +7 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/default_metrics.py +18 -11
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/inner_leap_binder/leapbinder.py +8 -39
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/inner_leap_binder/leapbinder_decorators.py +2 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/visualizers/default_visualizers.py +11 -16
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/pyproject.toml +1 -1
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/LICENSE +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/README.md +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/__init__.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/contract/__init__.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/contract/datasetclasses.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/contract/enums.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/contract/exceptions.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/contract/mapping.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/contract/responsedataclasses.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/contract/visualizer_classes.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/experiment_api/__init__.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/experiment_api/api.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/experiment_api/cli_config_utils.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/experiment_api/client.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/experiment_api/epoch.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/experiment_api/experiment.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/experiment_api/experiment_context.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/experiment_api/types.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/experiment_api/utils.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/inner_leap_binder/__init__.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/leaploader.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/leaploaderbase.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/mixpanel_tracker.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/plot_functions/__init__.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/plot_functions/plot_functions.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/plot_functions/visualize.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/utils.py +0 -0
- {code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/visualizers/__init__.py +0 -0
|
@@ -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)
|
{code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/inner_leap_binder/leapbinder.py
RENAMED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import inspect
|
|
2
|
-
from typing import Callable,
|
|
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
|
|
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
|
-
|
|
20
|
-
from code_loader.default_metrics import
|
|
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
|
-
|
|
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,
|
{code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/visualizers/default_visualizers.py
RENAMED
|
@@ -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]
|
|
File without changes
|
|
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.134 → code_loader-1.0.134.dev1}/code_loader/contract/responsedataclasses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/experiment_api/cli_config_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.134 → code_loader-1.0.134.dev1}/code_loader/experiment_api/experiment_context.py
RENAMED
|
File without changes
|
|
File without changes
|
|
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.134 → code_loader-1.0.134.dev1}/code_loader/plot_functions/plot_functions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|