code-loader 1.0.150.dev1__tar.gz → 1.0.151__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.150.dev1 → code_loader-1.0.151}/PKG-INFO +1 -1
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/inner_leap_binder/leapbinder_decorators.py +1 -2
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/leaploader.py +19 -2
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/leaploaderbase.py +25 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/pyproject.toml +1 -1
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/LICENSE +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/README.md +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/__init__.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/contract/__init__.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/contract/datasetclasses.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/contract/enums.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/contract/exceptions.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/contract/mapping.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/contract/responsedataclasses.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/contract/visualizer_classes.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/default_losses.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/default_metrics.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/experiment_api/__init__.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/experiment_api/api.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/experiment_api/cli_config_utils.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/experiment_api/client.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/experiment_api/epoch.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/experiment_api/experiment.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/experiment_api/experiment_context.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/experiment_api/types.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/experiment_api/utils.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/inner_leap_binder/__init__.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/inner_leap_binder/leapbinder.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/mixpanel_tracker.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/plot_functions/__init__.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/plot_functions/plot_functions.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/plot_functions/visualize.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/utils.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/visualizers/__init__.py +0 -0
- {code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/visualizers/default_visualizers.py +0 -0
|
@@ -132,8 +132,7 @@ def validate_output_structure(result, func_name: str, expected_type_name="np.nda
|
|
|
132
132
|
|
|
133
133
|
|
|
134
134
|
def batch_warning(result, func_name):
|
|
135
|
-
|
|
136
|
-
if result.shape[0] == 1:
|
|
135
|
+
if len(result.shape) > 0 and result.shape[0] == 1:
|
|
137
136
|
warnings.warn(
|
|
138
137
|
f"{func_name} warning: Tensorleap will add a batch dimension at axis 0 to the output of {func_name}, "
|
|
139
138
|
f"although the detected size of axis 0 is already 1. "
|
|
@@ -163,7 +163,7 @@ class LeapLoader(LeapLoaderBase):
|
|
|
163
163
|
if state == DataStateEnum.unlabeled and sample_id not in preprocess_result[state].sample_ids:
|
|
164
164
|
self._preprocess_result(update_unlabeled_preprocess=True)
|
|
165
165
|
|
|
166
|
-
metadata, metadata_is_none = self.
|
|
166
|
+
metadata, metadata_is_none = self.get_metadata(state, sample_id)
|
|
167
167
|
|
|
168
168
|
custom_latent_space = None
|
|
169
169
|
if global_leap_binder.setup_container.custom_latent_space is not None:
|
|
@@ -521,21 +521,38 @@ class LeapLoader(LeapLoaderBase):
|
|
|
521
521
|
|
|
522
522
|
return converted_value, is_none
|
|
523
523
|
|
|
524
|
-
def
|
|
524
|
+
def get_metadata(self, state: DataStateEnum, sample_id: Union[int, str], requested_metadata_names: Optional[List[str]] = None) -> Tuple[
|
|
525
525
|
Dict[str, Union[str, int, bool, float]], Dict[str, bool]]:
|
|
526
|
+
|
|
527
|
+
def is_metadata_name_starts_with_handler_name(_handler):
|
|
528
|
+
for metadata_name in requested_metadata_names:
|
|
529
|
+
if metadata_name.startswith(_handler.name + '_') or metadata_name == _handler.name:
|
|
530
|
+
return True
|
|
531
|
+
return False
|
|
532
|
+
|
|
526
533
|
result_agg = {}
|
|
527
534
|
is_none = {}
|
|
528
535
|
preprocess_result = self._preprocess_result()
|
|
529
536
|
preprocess_state = preprocess_result[state]
|
|
530
537
|
for handler in global_leap_binder.setup_container.metadata:
|
|
538
|
+
if requested_metadata_names:
|
|
539
|
+
if not is_metadata_name_starts_with_handler_name(handler):
|
|
540
|
+
continue
|
|
541
|
+
|
|
531
542
|
handler_result = handler.function(sample_id, preprocess_state)
|
|
532
543
|
if isinstance(handler_result, dict):
|
|
533
544
|
for single_metadata_name, single_metadata_result in handler_result.items():
|
|
534
545
|
handler_name = f'{handler.name}_{single_metadata_name}'
|
|
546
|
+
if requested_metadata_names:
|
|
547
|
+
if handler_name not in requested_metadata_names:
|
|
548
|
+
continue
|
|
535
549
|
result_agg[handler_name], is_none[handler_name] = self._convert_metadata_to_correct_type(
|
|
536
550
|
handler_name, single_metadata_result)
|
|
537
551
|
else:
|
|
538
552
|
handler_name = handler.name
|
|
553
|
+
if requested_metadata_names:
|
|
554
|
+
if handler_name not in requested_metadata_names:
|
|
555
|
+
continue
|
|
539
556
|
result_agg[handler_name], is_none[handler_name] = self._convert_metadata_to_correct_type(
|
|
540
557
|
handler_name, handler_result)
|
|
541
558
|
|
|
@@ -68,6 +68,24 @@ class LeapLoaderBase:
|
|
|
68
68
|
def get_instances_data(self, state: DataStateEnum) -> Tuple[Dict[str, List[str]], Dict[str, str]]:
|
|
69
69
|
pass
|
|
70
70
|
|
|
71
|
+
def get_metadata_multiple_samples(self, state: DataStateEnum, sample_ids: Union[List[int], List[str]],
|
|
72
|
+
requested_metadata_names: Optional[List[str]] = None
|
|
73
|
+
) -> Tuple[Dict[str, Union[List[str], List[int], List[bool],
|
|
74
|
+
List[float]]], Dict[str, List[bool]]]:
|
|
75
|
+
aggregated_results: Dict[str, List[Union[str, int, bool, float]]] = {}
|
|
76
|
+
aggregated_is_none: Dict[str, List[bool]] = {}
|
|
77
|
+
sample_id_type = self.get_sample_id_type()
|
|
78
|
+
for sample_id in sample_ids:
|
|
79
|
+
sample_id = sample_id_type(sample_id)
|
|
80
|
+
metadata_result, is_none_result = self.get_metadata(state, sample_id, requested_metadata_names)
|
|
81
|
+
for metadata_name, metadata_value in metadata_result.items():
|
|
82
|
+
if metadata_name not in aggregated_results:
|
|
83
|
+
aggregated_results[metadata_name] = []
|
|
84
|
+
aggregated_is_none[metadata_name] = []
|
|
85
|
+
aggregated_results[metadata_name].append(metadata_value)
|
|
86
|
+
aggregated_is_none[metadata_name].append(is_none_result[metadata_name])
|
|
87
|
+
return aggregated_results, aggregated_is_none
|
|
88
|
+
|
|
71
89
|
@abstractmethod
|
|
72
90
|
def check_dataset(self) -> DatasetIntegParseResult:
|
|
73
91
|
pass
|
|
@@ -87,6 +105,13 @@ class LeapLoaderBase:
|
|
|
87
105
|
input_tensors_by_arg_name: Dict[str, npt.NDArray[np.float32]]):
|
|
88
106
|
pass
|
|
89
107
|
|
|
108
|
+
@abstractmethod
|
|
109
|
+
def get_metadata(
|
|
110
|
+
self, state: DataStateEnum, sample_id: Union[int, str],
|
|
111
|
+
requested_metadata_names: Optional[List[str]] = None
|
|
112
|
+
) -> Tuple[Dict[str, Union[str, int, bool, float]], Dict[str, bool]]:
|
|
113
|
+
pass
|
|
114
|
+
|
|
90
115
|
@abstractmethod
|
|
91
116
|
def run_heatmap_visualizer(self, visualizer_name: str, sample_ids: np.array, state: DataStateEnum,
|
|
92
117
|
input_tensors_by_arg_name: Dict[str, npt.NDArray[np.float32]]
|
|
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.150.dev1 → code_loader-1.0.151}/code_loader/contract/responsedataclasses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.150.dev1 → code_loader-1.0.151}/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.150.dev1 → code_loader-1.0.151}/code_loader/experiment_api/experiment_context.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/inner_leap_binder/leapbinder.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/plot_functions/plot_functions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.150.dev1 → code_loader-1.0.151}/code_loader/visualizers/default_visualizers.py
RENAMED
|
File without changes
|