code-loader 1.0.197.dev0__tar.gz → 1.0.197.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.
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/PKG-INFO +1 -1
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/contract/datasetclasses.py +1 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/inner_leap_binder/leapbinder.py +23 -3
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/inner_leap_binder/leapbinder_decorators.py +7 -2
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/leaploader.py +13 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/leaploaderbase.py +4 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/pyproject.toml +1 -1
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/LICENSE +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/README.md +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/__init__.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/contract/__init__.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/contract/enums.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/contract/exceptions.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/contract/mapping.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/contract/responsedataclasses.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/contract/sim_config.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/contract/visualizer_classes.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/default_losses.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/default_metrics.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/experiment_api/__init__.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/experiment_api/api.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/experiment_api/cli_config_utils.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/experiment_api/client.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/experiment_api/epoch.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/experiment_api/experiment.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/experiment_api/experiment_context.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/experiment_api/types.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/experiment_api/utils.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/inner_leap_binder/__init__.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/mixpanel_tracker.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/plot_functions/__init__.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/plot_functions/plot_functions.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/plot_functions/visualize.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/utils.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/visualizers/__init__.py +0 -0
- {code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/visualizers/default_visualizers.py +0 -0
{code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/contract/datasetclasses.py
RENAMED
|
@@ -252,6 +252,7 @@ class MetadataHandler:
|
|
|
252
252
|
class CustomLatentSpaceHandler:
|
|
253
253
|
function: SectionCallableInterface
|
|
254
254
|
name: str = 'custom_latent_space'
|
|
255
|
+
use_ls_for_analysis: bool = False
|
|
255
256
|
|
|
256
257
|
|
|
257
258
|
# How a chain's latent-space vectors are derived from its per-step forward passes.
|
{code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/inner_leap_binder/leapbinder.py
RENAMED
|
@@ -514,7 +514,8 @@ class LeapBinder:
|
|
|
514
514
|
self.setup_container.metadata.append(MetadataHandler(name, function, metadata_type))
|
|
515
515
|
|
|
516
516
|
def set_custom_latent_space(self, function: SectionCallableInterface,
|
|
517
|
-
name: Optional[str] = None
|
|
517
|
+
name: Optional[str] = None,
|
|
518
|
+
use_ls_for_analysis: bool = False) -> None:
|
|
518
519
|
"""
|
|
519
520
|
Register a custom latent space function.
|
|
520
521
|
|
|
@@ -531,6 +532,10 @@ class LeapBinder:
|
|
|
531
532
|
space vec of the sample.
|
|
532
533
|
name (Optional[str]): Unique name for this custom latent space. Defaults to
|
|
533
534
|
the reserved single-LS name for backward compatibility.
|
|
535
|
+
use_ls_for_analysis (bool): When True, the engine uses this custom latent
|
|
536
|
+
space for the Out-Of-Distribution and Domain-Gap insights instead of the
|
|
537
|
+
built-in defaults. At most one registered custom latent space may set this;
|
|
538
|
+
registering a second one with the flag raises.
|
|
534
539
|
"""
|
|
535
540
|
if name is None:
|
|
536
541
|
name = custom_latent_space_attribute
|
|
@@ -540,7 +545,22 @@ class LeapBinder:
|
|
|
540
545
|
f"@tensorleap_custom_latent_space must have a unique name "
|
|
541
546
|
f"(pass name='...' to distinguish them)."
|
|
542
547
|
)
|
|
543
|
-
|
|
548
|
+
if use_ls_for_analysis:
|
|
549
|
+
already_flagged = [
|
|
550
|
+
existing_name
|
|
551
|
+
for existing_name, handler in self.setup_container.custom_latent_spaces.items()
|
|
552
|
+
if handler.use_ls_for_analysis
|
|
553
|
+
]
|
|
554
|
+
if already_flagged:
|
|
555
|
+
raise Exception(
|
|
556
|
+
f"use_ls_for_analysis=True is already set on custom latent space "
|
|
557
|
+
f"'{already_flagged[0]}'. Only one custom latent space may set "
|
|
558
|
+
f"use_ls_for_analysis=True (it selects the latent space used for the "
|
|
559
|
+
f"Out-Of-Distribution and Domain-Gap insights). Set it on '{name}' "
|
|
560
|
+
f"or '{already_flagged[0]}', not both."
|
|
561
|
+
)
|
|
562
|
+
self.setup_container.custom_latent_spaces[name] = CustomLatentSpaceHandler(
|
|
563
|
+
function, name, use_ls_for_analysis)
|
|
544
564
|
|
|
545
565
|
def set_autoregressive_step(self, function: AutoregressiveStepCallableInterface,
|
|
546
566
|
latent_space_aggregation: str = 'last_step') -> None:
|
|
@@ -906,7 +926,7 @@ class LeapBinder:
|
|
|
906
926
|
"Element instances are not supported together with tensorleap_autoregressive_step: "
|
|
907
927
|
"instance generation masks the sample's encoded inputs, which do not exist in an "
|
|
908
928
|
"autoregressive integration. Remove the instance encoders or the autoregressive hook.")
|
|
909
|
-
if self.setup_container.
|
|
929
|
+
if self.setup_container.custom_latent_spaces:
|
|
910
930
|
raise Exception(
|
|
911
931
|
"tensorleap_custom_latent_space is not supported together with "
|
|
912
932
|
"tensorleap_autoregressive_step: the custom latent space function only sees "
|
|
@@ -1621,7 +1621,11 @@ def tensorleap_metadata(
|
|
|
1621
1621
|
return decorating_function
|
|
1622
1622
|
|
|
1623
1623
|
|
|
1624
|
-
def tensorleap_custom_latent_space(name: Optional[str] = None):
|
|
1624
|
+
def tensorleap_custom_latent_space(name: Optional[str] = None, use_ls_for_analysis: bool = False):
|
|
1625
|
+
assert isinstance(use_ls_for_analysis, bool), \
|
|
1626
|
+
("tensorleap_custom_latent_space validation failed: use_ls_for_analysis must be a bool. "
|
|
1627
|
+
f"Got {type(use_ls_for_analysis)}.")
|
|
1628
|
+
|
|
1625
1629
|
def decorating_function(user_function: SectionCallableInterface):
|
|
1626
1630
|
ls_name = name if name is not None else user_function.__name__
|
|
1627
1631
|
def _validate_input_args(sample_id: Union[int, str], preprocess_response: PreprocessResponse):
|
|
@@ -1664,7 +1668,8 @@ def tensorleap_custom_latent_space(name: Optional[str] = None):
|
|
|
1664
1668
|
|
|
1665
1669
|
return result
|
|
1666
1670
|
|
|
1667
|
-
leap_binder.set_custom_latent_space(inner_without_validate, ls_name
|
|
1671
|
+
leap_binder.set_custom_latent_space(inner_without_validate, ls_name,
|
|
1672
|
+
use_ls_for_analysis=use_ls_for_analysis)
|
|
1668
1673
|
|
|
1669
1674
|
def inner(sample_id, preprocess_response):
|
|
1670
1675
|
if os.environ.get(mapping_runtime_mode_env_var_mame):
|
|
@@ -1076,6 +1076,19 @@ class LeapLoader(LeapLoaderBase):
|
|
|
1076
1076
|
self.exec_script()
|
|
1077
1077
|
return tuple(global_leap_binder.setup_container.custom_latent_spaces.keys())
|
|
1078
1078
|
|
|
1079
|
+
@lru_cache()
|
|
1080
|
+
def get_custom_latent_space_for_analysis(self) -> Optional[str]:
|
|
1081
|
+
"""Name of the custom latent space flagged with use_ls_for_analysis=True, if any.
|
|
1082
|
+
|
|
1083
|
+
The engine uses this latent space for the Out-Of-Distribution and Domain-Gap
|
|
1084
|
+
insights instead of the built-in defaults. Returns None when no custom latent
|
|
1085
|
+
space set the flag. At most one is flagged (enforced at registration time)."""
|
|
1086
|
+
self.exec_script()
|
|
1087
|
+
for name, handler in global_leap_binder.setup_container.custom_latent_spaces.items():
|
|
1088
|
+
if handler.use_ls_for_analysis:
|
|
1089
|
+
return name
|
|
1090
|
+
return None
|
|
1091
|
+
|
|
1079
1092
|
@lru_cache()
|
|
1080
1093
|
def has_autoregressive_step(self) -> bool:
|
|
1081
1094
|
self.exec_script()
|
|
@@ -222,6 +222,10 @@ class LeapLoaderBase:
|
|
|
222
222
|
def get_custom_latent_space_names(self) -> Tuple[str, ...]:
|
|
223
223
|
pass
|
|
224
224
|
|
|
225
|
+
@abstractmethod
|
|
226
|
+
def get_custom_latent_space_for_analysis(self) -> Optional[str]:
|
|
227
|
+
pass
|
|
228
|
+
|
|
225
229
|
@abstractmethod
|
|
226
230
|
def get_heatmap_visualizer_raw_vis_input_arg_name(self, visualizer_name: str) -> Optional[str]:
|
|
227
231
|
pass
|
|
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.197.dev0 → code_loader-1.0.197.dev1}/code_loader/contract/responsedataclasses.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/contract/visualizer_classes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/experiment_api/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/experiment_api/cli_config_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/experiment_api/experiment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/inner_leap_binder/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/plot_functions/__init__.py
RENAMED
|
File without changes
|
{code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/plot_functions/plot_functions.py
RENAMED
|
File without changes
|
{code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/plot_functions/visualize.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.197.dev0 → code_loader-1.0.197.dev1}/code_loader/visualizers/default_visualizers.py
RENAMED
|
File without changes
|