learning-loop-node 0.10.3__tar.gz → 0.10.5__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.
Potentially problematic release.
This version of learning-loop-node might be problematic. Click here for more details.
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/PKG-INFO +1 -1
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/detector_node.py +4 -1
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/io_helpers.py +9 -10
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/tests/states/test_state_upload_detections.py +13 -12
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/pyproject.toml +1 -1
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/README.md +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/__init__.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/annotation/__init__.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/annotation/annotator_logic.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/annotation/annotator_node.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/annotation/tests/test_annotator_node.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/conftest.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/data_classes/__init__.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/data_classes/annotations.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/data_classes/detections.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/data_classes/general.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/data_classes/socket_response.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/data_classes/training.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/data_exchanger.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/__init__.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/detector_logic.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/inbox_filter/__init__.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/inbox_filter/cam_observation_history.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/inbox_filter/relevance_filter.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/inbox_filter/tests/test_observation.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/inbox_filter/tests/test_relevance_group.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/inbox_filter/tests/test_unexpected_observations_count.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/outbox.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/rest/__init__.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/rest/about.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/rest/backdoor_controls.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/rest/detect.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/rest/operation_mode.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/rest/upload.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/tests/__init__.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/tests/conftest.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/tests/test.jpg +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/tests/test_client_communication.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/tests/test_outbox.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/tests/test_relevance_filter.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/tests/testing_detector.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/examples/novelty_score_updater.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/globals.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/helpers/__init__.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/helpers/environment_reader.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/helpers/gdrive_downloader.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/helpers/log_conf.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/helpers/misc.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/loop_communication.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/node.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/py.typed +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/pytest.ini +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/tests/__init__.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/tests/conftest.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/tests/test_data/file_1.txt +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/tests/test_data/file_2.txt +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/tests/test_data/model.json +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/tests/test_data_classes.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/tests/test_downloader.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/tests/test_executor.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/tests/test_helper.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/tests/test_learning_loop_node.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/__init__.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/downloader.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/executor.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/rest/__init__.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/rest/backdoor_controls.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/rest/controls.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/tests/__init__.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/tests/conftest.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/tests/state_helper.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/tests/states/__init__.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/tests/states/test_state_cleanup.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/tests/states/test_state_detecting.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/tests/states/test_state_download_train_model.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/tests/states/test_state_prepare.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/tests/states/test_state_sync_confusion_matrix.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/tests/states/test_state_train.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/tests/states/test_state_upload_model.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/tests/test_errors.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/tests/test_trainer_states.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/tests/testing_trainer_logic.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/trainer_logic.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/trainer_logic_generic.py +0 -0
- {learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/trainer_node.py +0 -0
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/detector_node.py
RENAMED
|
@@ -43,6 +43,8 @@ class DetectorNode(Node):
|
|
|
43
43
|
self.operation_mode: OperationMode = OperationMode.Startup
|
|
44
44
|
self.connected_clients: List[str] = []
|
|
45
45
|
|
|
46
|
+
self.detection_lock = asyncio.Lock()
|
|
47
|
+
|
|
46
48
|
self.outbox: Outbox = Outbox()
|
|
47
49
|
self.data_exchanger = DataExchanger(
|
|
48
50
|
Context(organization=self.organization, project=self.project),
|
|
@@ -300,8 +302,9 @@ class DetectorNode(Node):
|
|
|
300
302
|
"""Note: raw_image is a numpy array of type uint8, but not in the correrct shape!
|
|
301
303
|
It can be converted e.g. using cv2.imdecode(raw_image, cv2.IMREAD_COLOR)"""
|
|
302
304
|
loop = asyncio.get_event_loop()
|
|
305
|
+
await self.detection_lock.acquire()
|
|
303
306
|
detections: Detections = await loop.run_in_executor(None, self.detector_logic.evaluate, raw_image)
|
|
304
|
-
|
|
307
|
+
self.detection_lock.release()
|
|
305
308
|
for seg_detection in detections.segmentation_detections:
|
|
306
309
|
if isinstance(seg_detection.shape, Shape):
|
|
307
310
|
shapes = ','.join([str(value) for p in seg_detection.shape.points for _,
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/io_helpers.py
RENAMED
|
@@ -159,18 +159,20 @@ class ActiveTrainingIO:
|
|
|
159
159
|
async def _upload_detections_batched(self, context: Context, detections: List[Detections]):
|
|
160
160
|
batch_size = 100
|
|
161
161
|
skip_detections = self.load_detection_upload_progress()
|
|
162
|
-
up_count = 0
|
|
163
162
|
for i in range(skip_detections, len(detections), batch_size):
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
batch_detections
|
|
167
|
-
await self._upload_detections(context, batch_detections, up_progress)
|
|
163
|
+
up_progress = i + batch_size if i + batch_size < len(detections) else 0
|
|
164
|
+
batch_detections = detections[i:i + batch_size]
|
|
165
|
+
await self._upload_detections_and_save_progress(context, batch_detections, up_progress)
|
|
168
166
|
skip_detections = up_progress
|
|
169
167
|
|
|
170
168
|
logging.info('uploaded %d detections', len(detections))
|
|
171
169
|
|
|
172
|
-
async def
|
|
170
|
+
async def _upload_detections_and_save_progress(self, context: Context, batch_detections: List[Detections], up_progress: int):
|
|
171
|
+
if len(batch_detections) == 0:
|
|
172
|
+
print('skipping empty batch', flush=True)
|
|
173
|
+
return
|
|
173
174
|
detections_json = [jsonable_encoder(asdict(detections)) for detections in batch_detections]
|
|
175
|
+
print(f'uploading {len(detections_json)} detections', flush=True)
|
|
174
176
|
response = await self.loop_communicator.post(
|
|
175
177
|
f'/{context.organization}/projects/{context.project}/detections', json=detections_json)
|
|
176
178
|
if response.status_code != 200:
|
|
@@ -179,7 +181,4 @@ class ActiveTrainingIO:
|
|
|
179
181
|
raise Exception(msg)
|
|
180
182
|
|
|
181
183
|
logging.info('successfully uploaded detections')
|
|
182
|
-
|
|
183
|
-
self.save_detection_upload_progress(0)
|
|
184
|
-
else:
|
|
185
|
-
self.save_detection_upload_progress(up_progress)
|
|
184
|
+
self.save_detection_upload_progress(up_progress)
|
|
@@ -37,7 +37,7 @@ async def create_valid_detection_file(trainer: TrainerLogic, number_of_entries:
|
|
|
37
37
|
'point_detections': [], 'segmentation_detections': []})
|
|
38
38
|
detections = [detection_entry] * number_of_entries
|
|
39
39
|
|
|
40
|
-
assert trainer.active_training_io is not None
|
|
40
|
+
assert trainer.active_training_io is not None
|
|
41
41
|
trainer.active_training_io.save_detections(detections, file_index)
|
|
42
42
|
|
|
43
43
|
|
|
@@ -80,21 +80,21 @@ async def test_ensure_all_detections_are_uploaded(test_initialized_trainer: Test
|
|
|
80
80
|
create_active_training_file(trainer, training_state=TrainerState.Detected)
|
|
81
81
|
trainer._init_from_last_training()
|
|
82
82
|
|
|
83
|
-
await create_valid_detection_file(trainer,
|
|
84
|
-
await create_valid_detection_file(trainer,
|
|
83
|
+
await create_valid_detection_file(trainer, 4, 0)
|
|
84
|
+
await create_valid_detection_file(trainer, 4, 1)
|
|
85
85
|
|
|
86
86
|
assert trainer.active_training_io.load_detections_upload_file_index() == 0
|
|
87
87
|
detections = trainer.active_training_io.load_detections(0)
|
|
88
|
-
assert len(detections) ==
|
|
88
|
+
assert len(detections) == 4
|
|
89
89
|
|
|
90
|
-
batch_size =
|
|
90
|
+
batch_size = 2
|
|
91
91
|
skip_detections = trainer.active_training_io.load_detection_upload_progress()
|
|
92
92
|
for i in range(skip_detections, len(detections), batch_size):
|
|
93
93
|
batch_detections = detections[i:i+batch_size]
|
|
94
|
-
|
|
95
|
-
await trainer.active_training_io.
|
|
94
|
+
progress = i + batch_size if i + batch_size < len(detections) else 0
|
|
95
|
+
await trainer.active_training_io._upload_detections_and_save_progress(trainer.training.context, batch_detections, progress)
|
|
96
96
|
|
|
97
|
-
expected_value =
|
|
97
|
+
expected_value = progress # Progress is reset for every file
|
|
98
98
|
assert trainer.active_training_io.load_detection_upload_progress() == expected_value
|
|
99
99
|
|
|
100
100
|
assert trainer.active_training_io.load_detections_upload_file_index() == 0
|
|
@@ -107,10 +107,11 @@ async def test_ensure_all_detections_are_uploaded(test_initialized_trainer: Test
|
|
|
107
107
|
skip_detections = trainer.active_training_io.load_detection_upload_progress()
|
|
108
108
|
for i in range(skip_detections, len(detections), batch_size):
|
|
109
109
|
batch_detections = detections[i:i+batch_size]
|
|
110
|
-
# pylint: disable=protected-access
|
|
111
|
-
await trainer.active_training_io._upload_detections(trainer.training.context, batch_detections, i + batch_size)
|
|
112
110
|
|
|
113
|
-
|
|
111
|
+
progress = i + batch_size if i + batch_size < len(detections) else 0
|
|
112
|
+
await trainer.active_training_io._upload_detections_and_save_progress(trainer.training.context, batch_detections, progress)
|
|
113
|
+
|
|
114
|
+
expected_value = progress # Progress is reset for every file
|
|
114
115
|
assert trainer.active_training_io.load_detection_upload_progress() == expected_value
|
|
115
116
|
assert trainer.active_training_io.load_detections_upload_file_index() == 1
|
|
116
117
|
|
|
@@ -160,5 +161,5 @@ async def test_abort_uploading(test_initialized_trainer: TestingTrainerLogic):
|
|
|
160
161
|
await trainer.stop()
|
|
161
162
|
await asyncio.sleep(0.1)
|
|
162
163
|
|
|
163
|
-
assert trainer._training is None
|
|
164
|
+
assert trainer._training is None
|
|
164
165
|
assert trainer.node.last_training_io.exists() is False
|
|
File without changes
|
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/annotation/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/data_classes/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/data_classes/general.py
RENAMED
|
File without changes
|
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/data_classes/training.py
RENAMED
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/data_exchanger.py
RENAMED
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/outbox.py
RENAMED
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/rest/__init__.py
RENAMED
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/rest/about.py
RENAMED
|
File without changes
|
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/rest/detect.py
RENAMED
|
File without changes
|
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/rest/upload.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/detector/tests/test.jpg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/helpers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/helpers/log_conf.py
RENAMED
|
File without changes
|
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/loop_communication.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/tests/__init__.py
RENAMED
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/tests/conftest.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/tests/test_downloader.py
RENAMED
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/tests/test_executor.py
RENAMED
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/tests/test_helper.py
RENAMED
|
File without changes
|
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/__init__.py
RENAMED
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/downloader.py
RENAMED
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/executor.py
RENAMED
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/rest/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/rest/controls.py
RENAMED
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/tests/__init__.py
RENAMED
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/tests/conftest.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/trainer_logic.py
RENAMED
|
File without changes
|
|
File without changes
|
{learning_loop_node-0.10.3 → learning_loop_node-0.10.5}/learning_loop_node/trainer/trainer_node.py
RENAMED
|
File without changes
|