code-loader 1.0.181.dev4__tar.gz → 1.0.182__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 (37) hide show
  1. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/PKG-INFO +1 -1
  2. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/inner_leap_binder/leapbinder.py +4 -3
  3. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/leaploader.py +14 -12
  4. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/leaploaderbase.py +2 -2
  5. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/pyproject.toml +1 -1
  6. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/LICENSE +0 -0
  7. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/README.md +0 -0
  8. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/__init__.py +0 -0
  9. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/contract/__init__.py +0 -0
  10. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/contract/datasetclasses.py +0 -0
  11. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/contract/enums.py +0 -0
  12. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/contract/exceptions.py +0 -0
  13. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/contract/mapping.py +0 -0
  14. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/contract/responsedataclasses.py +0 -0
  15. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/contract/sim_config.py +0 -0
  16. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/contract/visualizer_classes.py +0 -0
  17. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/default_losses.py +0 -0
  18. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/default_metrics.py +0 -0
  19. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/experiment_api/__init__.py +0 -0
  20. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/experiment_api/api.py +0 -0
  21. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/experiment_api/cli_config_utils.py +0 -0
  22. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/experiment_api/client.py +0 -0
  23. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/experiment_api/epoch.py +0 -0
  24. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/experiment_api/experiment.py +0 -0
  25. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/experiment_api/experiment_context.py +0 -0
  26. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/experiment_api/types.py +0 -0
  27. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/experiment_api/utils.py +0 -0
  28. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
  29. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/inner_leap_binder/__init__.py +0 -0
  30. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/inner_leap_binder/leapbinder_decorators.py +0 -0
  31. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/mixpanel_tracker.py +0 -0
  32. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/plot_functions/__init__.py +0 -0
  33. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/plot_functions/plot_functions.py +0 -0
  34. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/plot_functions/visualize.py +0 -0
  35. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/utils.py +0 -0
  36. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/code_loader/visualizers/__init__.py +0 -0
  37. {code_loader-1.0.181.dev4 → code_loader-1.0.182}/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.181.dev4
3
+ Version: 1.0.182
4
4
  Summary:
5
5
  Home-page: https://github.com/tensorleap/code-loader
6
6
  License: MIT
@@ -690,10 +690,11 @@ class LeapBinder:
690
690
  preprocess_response.tl_generated = True
691
691
  if not preprocess_response.length or preprocess_response.length < 1:
692
692
  raise Exception("Simulation '{}' returned PreprocessResponse with length < 1".format(sim.name))
693
+ preprocess_response.sample_ids = [0]
693
694
  for handler in self.setup_container.inputs:
694
- out1 = handler.function(0, preprocess_response)
695
- out2 = handler.function(0, preprocess_response)
696
- if not np.array_equal(out1, out2):
695
+ out1 = handler.function(preprocess_response.sample_ids[0], preprocess_response)
696
+ out2 = handler.function(preprocess_response.sample_ids[0], preprocess_response)
697
+ if not np.allclose(out1, out2):
697
698
  raise Exception(
698
699
  "Simulation '{}': encoder '{}' is non-deterministic — consecutive calls with seed=0 returned different outputs".format(
699
700
  sim.name, handler.name
@@ -324,10 +324,11 @@ class LeapLoader(LeapLoaderBase):
324
324
  preprocess_response.tl_generated = True
325
325
  if preprocess_response.length < 1:
326
326
  raise ValueError("Simulation returned PreprocessResponse with length < 1")
327
+ preprocess_response.sample_ids = [0]
327
328
  for handler in global_leap_binder.setup_container.inputs:
328
- out1 = handler.function(0, preprocess_response)
329
- out2 = handler.function(0, preprocess_response)
330
- if not np.array_equal(out1, out2):
329
+ out1 = handler.function(preprocess_response.sample_ids[0], preprocess_response)
330
+ out2 = handler.function(preprocess_response.sample_ids[0], preprocess_response)
331
+ if not np.allclose(out1, out2):
331
332
  raise ValueError(
332
333
  "Encoder '{}' is non-deterministic: consecutive calls with seed=0 returned different outputs".format(
333
334
  handler.name
@@ -344,8 +345,8 @@ class LeapLoader(LeapLoaderBase):
344
345
  result_payloads.append(test_result)
345
346
  return result_payloads
346
347
 
347
- def run_simulation_check(self, sim_name):
348
- # type: (str) -> Dict[str, npt.NDArray[np.float32]]
348
+ def run_simulation(self, sim_name, params=None, n_samples=1, seed=0):
349
+ # type: (str, Optional[Dict[str, Any]], int, int) -> Dict[str, npt.NDArray[np.float32]]
349
350
  self.exec_script()
350
351
  sim = next(
351
352
  (s for s in global_leap_binder.setup_container.simulations if s.name == sim_name),
@@ -353,9 +354,9 @@ class LeapLoader(LeapLoaderBase):
353
354
  )
354
355
  if sim is None:
355
356
  raise ValueError("No simulation registered with name '{}'".format(sim_name))
356
- kwargs = sample_sim_params(sim.sim_config)
357
- kwargs["N"] = 1
358
- kwargs["seed"] = 0
357
+ kwargs = dict(params) if params is not None else sample_sim_params(sim.sim_config)
358
+ kwargs["N"] = n_samples
359
+ kwargs["seed"] = seed
359
360
  _simulation_context["active"] = True
360
361
  try:
361
362
  sim_preprocess = sim.function(**kwargs)
@@ -363,10 +364,11 @@ class LeapLoader(LeapLoaderBase):
363
364
  _simulation_context["active"] = False
364
365
  sim_preprocess.state = DataStateType.additional
365
366
  sim_preprocess.tl_generated = True
366
- result = {}
367
- for handler in global_leap_binder.setup_container.inputs:
368
- result[handler.name] = handler.function(0, sim_preprocess)
369
- return result
367
+ per_encoder = {handler.name: [] for handler in global_leap_binder.setup_container.inputs}
368
+ for sample_id in sim_preprocess.sample_ids:
369
+ for handler in global_leap_binder.setup_container.inputs:
370
+ per_encoder[handler.name].append(handler.function(sample_id, sim_preprocess))
371
+ return {name: np.stack(arrays) for name, arrays in per_encoder.items()}
370
372
 
371
373
  @staticmethod
372
374
  def _get_all_dataset_base_handlers() -> List[Union[DatasetBaseHandler, MetadataHandler]]:
@@ -154,8 +154,8 @@ class LeapLoaderBase:
154
154
  pass
155
155
 
156
156
  @abstractmethod
157
- def run_simulation_check(self, sim_name):
158
- # type: (str) -> Dict[str, Any]
157
+ def run_simulation(self, sim_name, params=None, n_samples=1, seed=0):
158
+ # type: (str, Optional[Dict[str, Any]], int, int) -> Dict[str, Any]
159
159
  pass
160
160
 
161
161
  def is_custom_latent_space(self) -> bool:
@@ -1,7 +1,7 @@
1
1
  [tool.poetry]
2
2
  name = "code-loader"
3
3
 
4
- version = "1.0.181.dev4"
4
+ version = "1.0.182"
5
5
  description = ""
6
6
  authors = ["dorhar <doron.harnoy@tensorleap.ai>"]
7
7
  license = "MIT"