code-loader 1.0.154a0__tar.gz → 1.0.154.dev0__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 (36) hide show
  1. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/PKG-INFO +1 -1
  2. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/contract/datasetclasses.py +0 -1
  3. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/contract/enums.py +3 -1
  4. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/contract/responsedataclasses.py +1 -1
  5. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/inner_leap_binder/leapbinder.py +12 -17
  6. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/inner_leap_binder/leapbinder_decorators.py +2 -6
  7. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/leaploader.py +6 -22
  8. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/pyproject.toml +1 -1
  9. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/LICENSE +0 -0
  10. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/README.md +0 -0
  11. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/__init__.py +0 -0
  12. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/contract/__init__.py +0 -0
  13. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/contract/exceptions.py +0 -0
  14. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/contract/mapping.py +0 -0
  15. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/contract/visualizer_classes.py +0 -0
  16. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/default_losses.py +0 -0
  17. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/default_metrics.py +0 -0
  18. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/experiment_api/__init__.py +0 -0
  19. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/experiment_api/api.py +0 -0
  20. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/experiment_api/cli_config_utils.py +0 -0
  21. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/experiment_api/client.py +0 -0
  22. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/experiment_api/epoch.py +0 -0
  23. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/experiment_api/experiment.py +0 -0
  24. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/experiment_api/experiment_context.py +0 -0
  25. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/experiment_api/types.py +0 -0
  26. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/experiment_api/utils.py +0 -0
  27. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
  28. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/inner_leap_binder/__init__.py +0 -0
  29. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/leaploaderbase.py +0 -0
  30. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/mixpanel_tracker.py +0 -0
  31. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/plot_functions/__init__.py +0 -0
  32. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/plot_functions/plot_functions.py +0 -0
  33. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/plot_functions/visualize.py +0 -0
  34. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/utils.py +0 -0
  35. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/code_loader/visualizers/__init__.py +0 -0
  36. {code_loader-1.0.154a0 → code_loader-1.0.154.dev0}/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.154a0
3
+ Version: 1.0.154.dev0
4
4
  Summary:
5
5
  Home-page: https://github.com/tensorleap/code-loader
6
6
  License: MIT
@@ -223,7 +223,6 @@ class MetadataHandler:
223
223
  name: str
224
224
  function: MetadataSectionCallableInterface
225
225
  metadata_type: Optional[Union[DatasetMetadataType, Dict[str, DatasetMetadataType]]] = None
226
- use_for_semantic_ls: Optional[bool] = None
227
226
 
228
227
 
229
228
  @dataclass
@@ -46,7 +46,8 @@ class DataStateType(Enum):
46
46
  training = "training"
47
47
  validation = "validation"
48
48
  test = "test"
49
- unlabeled = "unlabeled"
49
+ unlabeled = "unlabeled",
50
+ additional_labeled = "additional_labeled"
50
51
 
51
52
 
52
53
  class DataStateEnum(IntEnum):
@@ -54,6 +55,7 @@ class DataStateEnum(IntEnum):
54
55
  validation = 1
55
56
  test = 2
56
57
  unlabeled = 3
58
+ additional_labeled = 4
57
59
 
58
60
 
59
61
  class ConfusionMatrixValue(Enum):
@@ -11,6 +11,7 @@ class DatasetPreprocess:
11
11
  validation_length: int
12
12
  test_length: Optional[int] = None
13
13
  unlabeled_length: Optional[int] = None
14
+ additional_labeled_length: Optional[int] = None
14
15
 
15
16
 
16
17
  @dataclass
@@ -27,7 +28,6 @@ class DatasetInputInstance(DatasetBaseSectionInstance):
27
28
  @dataclass
28
29
  class DatasetMetadataInstance(DatasetBaseSectionInstance):
29
30
  type: DatasetMetadataType
30
- use_for_semantic_ls: Optional[bool] = None
31
31
 
32
32
 
33
33
  @dataclass
@@ -24,6 +24,7 @@ from code_loader.visualizers.default_visualizers import DefaultVisualizer, \
24
24
  default_image_visualizer, default_horizontal_bar_visualizer, default_word_visualizer, \
25
25
  default_image_mask_visualizer, default_text_mask_visualizer, default_raw_data_visualizer, default_video_visualizer
26
26
 
27
+
27
28
  mapping_runtime_mode_env_var_mame = '__MAPPING_RUNTIME_MODE__'
28
29
 
29
30
 
@@ -238,6 +239,7 @@ class LeapBinder:
238
239
 
239
240
  self._encoder_names.append(name)
240
241
 
242
+
241
243
  def set_instance_masks(self, function: InstanceCallableInterface, name: str) -> None:
242
244
  """
243
245
  Set the instance mask handler function.
@@ -252,6 +254,7 @@ class LeapBinder:
252
254
  function = to_numpy_return_masks_wrapper(function)
253
255
  self.setup_container.instance_masks.append(ElementInstanceMasksHandler(name, function))
254
256
 
257
+
255
258
  def add_custom_loss(self, function: CustomCallableInterface, name: str) -> None:
256
259
  """
257
260
  Add a custom loss function to the setup.
@@ -328,8 +331,7 @@ class LeapBinder:
328
331
  metric_handler_data = MetricHandlerData(name, regular_arg_names, direction, compute_insights)
329
332
  self.setup_container.metrics.append(MetricHandler(metric_handler_data, function))
330
333
 
331
- def add_prediction(self, name: str, labels: List[str], channel_dim: int = -1,
332
- prediction_index: Optional[int] = None) -> None:
334
+ def add_prediction(self, name: str, labels: List[str], channel_dim: int = -1, prediction_index: Optional[int]=None) -> None:
333
335
  """
334
336
  Add prediction labels to the setup.
335
337
 
@@ -346,8 +348,7 @@ class LeapBinder:
346
348
  self.setup_container.prediction_types.append(PredictionTypeHandler(name, labels, channel_dim))
347
349
  if prediction_index is not None:
348
350
  node_connection = NodeConnection(NodeMapping(name, NodeMappingType.PredictionLabels),
349
- {'temp': NodeMapping('',
350
- NodeMappingType(f'Prediction{prediction_index}'))})
351
+ {'temp': NodeMapping('', NodeMappingType(f'Prediction{prediction_index}'))})
351
352
 
352
353
  self.mapping_connections.append(node_connection)
353
354
 
@@ -383,8 +384,7 @@ class LeapBinder:
383
384
  self._encoder_names.append(name)
384
385
 
385
386
  def set_metadata(self, function: MetadataSectionCallableInterface, name: str,
386
- metadata_type: Optional[Union[DatasetMetadataType, Dict[str, DatasetMetadataType]]] = None,
387
- use_for_semantic_ls: Optional[bool] = None) -> None:
387
+ metadata_type: Optional[Union[DatasetMetadataType, Dict[str, DatasetMetadataType]]] = None) -> None:
388
388
  """
389
389
  Set the metadata handler function. This function is used for measuring and analyzing external variable values per sample, which is recommended for analysis within the Tensorleap platform.
390
390
 
@@ -419,7 +419,7 @@ class LeapBinder:
419
419
  leap_binder.set_metadata(metadata_handler_index, name='metadata_index')
420
420
  leap_binder.set_metadata(metadata_handler_image_mean, name='metadata_image_mean')
421
421
  """
422
- self.setup_container.metadata.append(MetadataHandler(name, function, metadata_type, use_for_semantic_ls))
422
+ self.setup_container.metadata.append(MetadataHandler(name, function, metadata_type))
423
423
 
424
424
  def set_custom_latent_space(self, function: SectionCallableInterface) -> None:
425
425
  """
@@ -534,8 +534,7 @@ class LeapBinder:
534
534
  @staticmethod
535
535
  def check_handler(
536
536
  preprocess_response: PreprocessResponse, test_result: List[DatasetTestResultPayload],
537
- dataset_base_handler: Union[DatasetBaseHandler, MetadataHandler], state: DataStateEnum) -> List[
538
- DatasetTestResultPayload]:
537
+ dataset_base_handler: Union[DatasetBaseHandler, MetadataHandler], state: DataStateEnum) -> List[DatasetTestResultPayload]:
539
538
  assert preprocess_response.sample_ids is not None
540
539
  raw_result = dataset_base_handler.function(preprocess_response.sample_ids[0], preprocess_response)
541
540
  handler_type = 'metadata' if isinstance(dataset_base_handler, MetadataHandler) else None
@@ -555,8 +554,7 @@ class LeapBinder:
555
554
 
556
555
  metadata_type = None
557
556
  if single_metadata_result is None:
558
- if state != DataStateEnum.training and test_result[
559
- i].name == f'{dataset_base_handler.name}_{single_metadata_name}':
557
+ if state != DataStateEnum.training and test_result[i].name == f'{dataset_base_handler.name}_{single_metadata_name}':
560
558
  metadata_test_result_payloads[i] = test_result[i]
561
559
  continue
562
560
 
@@ -564,8 +562,7 @@ class LeapBinder:
564
562
  raise Exception(f"Metadata {single_metadata_name} is None and no metadata type is provided")
565
563
  elif isinstance(dataset_base_handler.metadata_type, dict):
566
564
  if single_metadata_name not in dataset_base_handler.metadata_type:
567
- raise Exception(
568
- f"Metadata {single_metadata_name} is None and no metadata type is provided")
565
+ raise Exception(f"Metadata {single_metadata_name} is None and no metadata type is provided")
569
566
  metadata_type = dataset_base_handler.metadata_type[single_metadata_name]
570
567
  else:
571
568
  raise Exception(f"Metadata {single_metadata_name} is None and metadata type is not a dict")
@@ -582,11 +579,9 @@ class LeapBinder:
582
579
  return test_result
583
580
 
584
581
  if dataset_base_handler.metadata_type is None:
585
- raise Exception(
586
- f"Metadata {dataset_base_handler.name} is None and no metadata type is provided")
582
+ raise Exception(f"Metadata {dataset_base_handler.name} is None and no metadata type is provided")
587
583
  elif isinstance(dataset_base_handler.metadata_type, dict):
588
- raise Exception(
589
- f"Metadata {dataset_base_handler.name} is None and no metadata type is provided")
584
+ raise Exception(f"Metadata {dataset_base_handler.name} is None and no metadata type is provided")
590
585
  metadata_type = dataset_base_handler.metadata_type
591
586
 
592
587
  result_shape = get_shape(raw_result)
@@ -897,17 +897,13 @@ def tensorleap_custom_visualizer(name: str, visualizer_type: LeapDataType,
897
897
 
898
898
 
899
899
  def tensorleap_metadata(
900
- name: str, metadata_type: Optional[Union[DatasetMetadataType, Dict[str, DatasetMetadataType]]] = None,
901
- use_for_semantic_ls: Optional[bool] = None):
900
+ name: str, metadata_type: Optional[Union[DatasetMetadataType, Dict[str, DatasetMetadataType]]] = None):
902
901
  def decorating_function(user_function: MetadataSectionCallableInterface):
903
902
  for metadata_handler in leap_binder.setup_container.metadata:
904
903
  if metadata_handler.name == name:
905
904
  raise Exception(f'Metadata with name {name} already exists. '
906
905
  f'Please choose another')
907
906
 
908
- if not type(use_for_semantic_ls) in (type(None), bool):
909
- raise Exception(f'use_for_semantic_ls must be either None or a boolean')
910
-
911
907
  def _validate_input_args(sample_id: Union[int, str], preprocess_response: PreprocessResponse):
912
908
  assert type(sample_id) == preprocess_response.sample_id_type, \
913
909
  (f'{user_function.__name__}() validation failed: '
@@ -943,7 +939,7 @@ def tensorleap_metadata(
943
939
 
944
940
  return result
945
941
 
946
- leap_binder.set_metadata(inner_without_validate, name, metadata_type, use_for_semantic_ls)
942
+ leap_binder.set_metadata(inner_without_validate, name, metadata_type)
947
943
 
948
944
  def inner(*args, **kwargs):
949
945
  if not _call_from_tl_platform:
@@ -357,7 +357,8 @@ class LeapLoader(LeapLoaderBase):
357
357
  training_length=setup.preprocess.data_length.get(DataStateType.training, 0),
358
358
  validation_length=setup.preprocess.data_length.get(DataStateType.validation, 0),
359
359
  test_length=setup.preprocess.data_length.get(DataStateType.test),
360
- unlabeled_length=unlabeled_length
360
+ unlabeled_length=unlabeled_length,
361
+ additional_labeled_length=setup.preprocess.data_length.get(DataStateType.additional_labeled),
361
362
  )
362
363
 
363
364
  inputs = []
@@ -373,19 +374,6 @@ class LeapLoader(LeapLoaderBase):
373
374
  ground_truths.append(
374
375
  DatasetOutputInstance(name=gt.name, shape=gt.shape))
375
376
 
376
- metadata_handler_use_for_semantic_ls = {
377
- handler.name: handler.use_for_semantic_ls
378
- for handler in setup.metadata
379
- }
380
-
381
- def get_use_for_semantic_ls(payload_name: str) -> Optional[bool]:
382
- if payload_name in metadata_handler_use_for_semantic_ls:
383
- return metadata_handler_use_for_semantic_ls[payload_name]
384
- for handler_name, use_semantic_ls in metadata_handler_use_for_semantic_ls.items():
385
- if payload_name.startswith(f"{handler_name}_"):
386
- return use_semantic_ls
387
- return None
388
-
389
377
  metadata_instances = []
390
378
  for handler_test_payload in handlers_test_payloads:
391
379
  if handler_test_payload.handler_type != 'metadata':
@@ -394,10 +382,8 @@ class LeapLoader(LeapLoaderBase):
394
382
  handler_test_payload.raw_result = handler_test_payload.raw_result.tolist()
395
383
  if isinstance(handler_test_payload.raw_result, DatasetMetadataType):
396
384
  dataset_metadata_type = handler_test_payload.raw_result
397
- metadata_instances.append(DatasetMetadataInstance(
398
- name=handler_test_payload.name,
399
- type=dataset_metadata_type,
400
- use_for_semantic_ls=get_use_for_semantic_ls(handler_test_payload.name)))
385
+ metadata_instances.append(DatasetMetadataInstance(name=handler_test_payload.name,
386
+ type=dataset_metadata_type))
401
387
  continue
402
388
  metadata_type = type(handler_test_payload.raw_result)
403
389
  if metadata_type == int or isinstance(handler_test_payload.raw_result,
@@ -412,10 +398,8 @@ class LeapLoader(LeapLoaderBase):
412
398
  else:
413
399
  raise Exception(f"Unsupported return type of metadata {handler_test_payload.name}."
414
400
  f"The return type should be one of [int, float, str, bool]. Got {metadata_type}")
415
- metadata_instances.append(DatasetMetadataInstance(
416
- name=handler_test_payload.name,
417
- type=dataset_metadata_type,
418
- use_for_semantic_ls=get_use_for_semantic_ls(handler_test_payload.name)))
401
+ metadata_instances.append(DatasetMetadataInstance(name=handler_test_payload.name,
402
+ type=dataset_metadata_type))
419
403
 
420
404
  visualizers = [
421
405
  VisualizerInstance(
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "code-loader"
3
- version = "1.0.154a0"
3
+ version = "1.0.154.dev0"
4
4
  description = ""
5
5
  authors = ["dorhar <doron.harnoy@tensorleap.ai>"]
6
6
  license = "MIT"