code-loader 0.2.84.dev32__tar.gz → 0.2.84.dev50__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 (34) hide show
  1. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/PKG-INFO +1 -1
  2. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/leap_loader_parallelized_base.py +6 -7
  3. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/metric_calculator_parallelized.py +4 -2
  4. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/samples_generator_parallelized.py +1 -2
  5. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/pyproject.toml +1 -1
  6. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/LICENSE +0 -0
  7. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/README.md +0 -0
  8. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/__init__.py +0 -0
  9. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/contract/__init__.py +0 -0
  10. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/contract/datasetclasses.py +0 -0
  11. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/contract/enums.py +0 -0
  12. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/contract/exceptions.py +0 -0
  13. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/contract/responsedataclasses.py +0 -0
  14. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/contract/visualizer_classes.py +0 -0
  15. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/helpers/__init__.py +0 -0
  16. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/helpers/detection/__init__.py +0 -0
  17. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/helpers/detection/utils.py +0 -0
  18. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/helpers/detection/yolo/__init__.py +0 -0
  19. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/helpers/detection/yolo/decoder.py +0 -0
  20. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/helpers/detection/yolo/enums.py +0 -0
  21. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/helpers/detection/yolo/grid.py +0 -0
  22. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/helpers/detection/yolo/loss.py +0 -0
  23. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/helpers/detection/yolo/pytorch_utils.py +0 -0
  24. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/helpers/detection/yolo/utils.py +0 -0
  25. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/helpers/instancesegmentation/__init__.py +0 -0
  26. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/helpers/instancesegmentation/utils.py +0 -0
  27. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/leap_binder/__init__.py +0 -0
  28. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/leap_binder/leapbinder.py +0 -0
  29. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/leaploader.py +0 -0
  30. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/metrics/__init__.py +0 -0
  31. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/metrics/default_metrics.py +0 -0
  32. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/utils.py +0 -0
  33. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/code_loader/visualizers/__init__.py +0 -0
  34. {code_loader-0.2.84.dev32 → code_loader-0.2.84.dev50}/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: 0.2.84.dev32
3
+ Version: 0.2.84.dev50
4
4
  Summary:
5
5
  Home-page: https://github.com/tensorleap/code-loader
6
6
  License: MIT
@@ -13,8 +13,9 @@ class LeapLoaderParallelizedBase(ABC):
13
13
  def __init__(self, code_path: str, code_entry_name: str,
14
14
  n_workers: Optional[int] = 2, max_ready_results_in_queue: int = 128,
15
15
  multiprocessing_context: Optional[str] = None) -> None:
16
- self.bb = multiprocessing_context
17
- self.multiprocessing_context = multiprocessing.get_context(multiprocessing_context)
16
+ self.multiprocessing_context = multiprocessing
17
+ if multiprocessing_context is not None:
18
+ self.multiprocessing_context = multiprocessing.get_context(multiprocessing_context)
18
19
 
19
20
  self.code_entry_name = code_entry_name
20
21
  self.code_path = code_path
@@ -36,7 +37,7 @@ class LeapLoaderParallelizedBase(ABC):
36
37
  memory_usage_in_bytes = p.memory_info().rss
37
38
  total_memory_in_bytes = psutil.virtual_memory().total
38
39
 
39
- n_workers = min(int(self.multiprocessing_context.cpu_count()),
40
+ n_workers = min(int(multiprocessing.cpu_count()),
40
41
  int(total_memory_in_bytes * 0.7 / memory_usage_in_bytes))
41
42
  n_workers = max(n_workers, 1)
42
43
  return n_workers
@@ -50,10 +51,8 @@ class LeapLoaderParallelizedBase(ABC):
50
51
 
51
52
  @lru_cache()
52
53
  def start(self) -> None:
53
- if self.bb is not None:
54
- multiprocessing.set_start_method("spawn", force=True)
55
- self._inputs_waiting_to_be_process = multiprocessing.Queue(5000)
56
- self._ready_processed_results = multiprocessing.Queue(self.max_ready_results_in_queue)
54
+ self._inputs_waiting_to_be_process = self.multiprocessing_context.Queue(5000)
55
+ self._ready_processed_results = self.multiprocessing_context.Queue(self.max_ready_results_in_queue)
57
56
 
58
57
  self._run_and_warm_first_process()
59
58
  n_workers = self.n_workers
@@ -1,5 +1,4 @@
1
1
  # mypy: ignore-errors
2
- import multiprocessing
3
2
  from typing import Optional, List, Tuple, Dict
4
3
  from multiprocessing import Process, Queue
5
4
  from code_loader.leap_loader_parallelized_base import LeapLoaderParallelizedBase
@@ -25,6 +24,9 @@ class MetricCalculatorParallelized(LeapLoaderParallelizedBase):
25
24
  @staticmethod
26
25
  def _process_func(code_path: str, code_entry_name: str,
27
26
  metrics_to_process: Queue, ready_samples: Queue) -> None:
27
+ import os
28
+ os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
29
+
28
30
  leap_loader = LeapLoader(code_path, code_entry_name)
29
31
  while True:
30
32
  metric_id, metric_name, input_arg_name_to_tensor = metrics_to_process.get(block=True)
@@ -39,7 +41,7 @@ class MetricCalculatorParallelized(LeapLoaderParallelizedBase):
39
41
  ready_samples.put((metric_id, metric_result))
40
42
 
41
43
  def _create_and_start_process(self) -> Process:
42
- process = multiprocessing.Process(
44
+ process = self.multiprocessing_context.Process(
43
45
  target=MetricCalculatorParallelized._process_func,
44
46
  args=(self.code_path, self.code_entry_name, self._inputs_waiting_to_be_process,
45
47
  self._ready_processed_results))
@@ -1,5 +1,4 @@
1
1
  # mypy: ignore-errors
2
- import multiprocessing
3
2
  import traceback
4
3
  from dataclasses import dataclass
5
4
 
@@ -26,7 +25,7 @@ class SamplesGeneratorParallelized(LeapLoaderParallelizedBase):
26
25
  super().__init__(code_path, code_entry_name, n_workers, max_samples_in_queue)
27
26
 
28
27
  def _create_and_start_process(self) -> Process:
29
- process = multiprocessing.Process(
28
+ process = self.multiprocessing_context.Process(
30
29
  target=SamplesGeneratorParallelized._process_func,
31
30
  args=(self.code_path, self.code_entry_name, self._inputs_waiting_to_be_process,
32
31
  self._ready_processed_results))
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "code-loader"
3
- version = "0.2.84.dev32"
3
+ version = "0.2.84.dev50"
4
4
  description = ""
5
5
  authors = ["dorhar <doron.harnoy@tensorleap.ai>"]
6
6
  license = "MIT"