sleap-nn 0.1.0a1__py3-none-any.whl → 0.1.0a3__py3-none-any.whl
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.
- sleap_nn/__init__.py +1 -1
- sleap_nn/cli.py +36 -0
- sleap_nn/config/trainer_config.py +18 -0
- sleap_nn/evaluation.py +81 -22
- sleap_nn/export/__init__.py +21 -0
- sleap_nn/export/cli.py +1778 -0
- sleap_nn/export/exporters/__init__.py +51 -0
- sleap_nn/export/exporters/onnx_exporter.py +80 -0
- sleap_nn/export/exporters/tensorrt_exporter.py +291 -0
- sleap_nn/export/metadata.py +225 -0
- sleap_nn/export/predictors/__init__.py +63 -0
- sleap_nn/export/predictors/base.py +22 -0
- sleap_nn/export/predictors/onnx.py +154 -0
- sleap_nn/export/predictors/tensorrt.py +312 -0
- sleap_nn/export/utils.py +307 -0
- sleap_nn/export/wrappers/__init__.py +25 -0
- sleap_nn/export/wrappers/base.py +96 -0
- sleap_nn/export/wrappers/bottomup.py +243 -0
- sleap_nn/export/wrappers/bottomup_multiclass.py +195 -0
- sleap_nn/export/wrappers/centered_instance.py +56 -0
- sleap_nn/export/wrappers/centroid.py +58 -0
- sleap_nn/export/wrappers/single_instance.py +83 -0
- sleap_nn/export/wrappers/topdown.py +180 -0
- sleap_nn/export/wrappers/topdown_multiclass.py +304 -0
- sleap_nn/inference/bottomup.py +86 -20
- sleap_nn/inference/postprocessing.py +284 -0
- sleap_nn/predict.py +29 -0
- sleap_nn/train.py +64 -0
- sleap_nn/training/callbacks.py +324 -8
- sleap_nn/training/lightning_modules.py +542 -32
- sleap_nn/training/model_trainer.py +48 -57
- {sleap_nn-0.1.0a1.dist-info → sleap_nn-0.1.0a3.dist-info}/METADATA +13 -2
- {sleap_nn-0.1.0a1.dist-info → sleap_nn-0.1.0a3.dist-info}/RECORD +37 -16
- {sleap_nn-0.1.0a1.dist-info → sleap_nn-0.1.0a3.dist-info}/WHEEL +0 -0
- {sleap_nn-0.1.0a1.dist-info → sleap_nn-0.1.0a3.dist-info}/entry_points.txt +0 -0
- {sleap_nn-0.1.0a1.dist-info → sleap_nn-0.1.0a3.dist-info}/licenses/LICENSE +0 -0
- {sleap_nn-0.1.0a1.dist-info → sleap_nn-0.1.0a3.dist-info}/top_level.txt +0 -0
|
@@ -23,7 +23,6 @@ from sleap_nn.data.utils import check_cache_memory
|
|
|
23
23
|
from lightning.pytorch.callbacks import (
|
|
24
24
|
ModelCheckpoint,
|
|
25
25
|
EarlyStopping,
|
|
26
|
-
LearningRateMonitor,
|
|
27
26
|
)
|
|
28
27
|
from lightning.pytorch.profilers import (
|
|
29
28
|
SimpleProfiler,
|
|
@@ -61,6 +60,7 @@ from sleap_nn.training.callbacks import (
|
|
|
61
60
|
WandBVizCallbackWithPAFs,
|
|
62
61
|
CSVLoggerCallback,
|
|
63
62
|
SleapProgressBar,
|
|
63
|
+
EpochEndEvaluationCallback,
|
|
64
64
|
)
|
|
65
65
|
from sleap_nn import RANK
|
|
66
66
|
from sleap_nn.legacy_models import get_keras_first_layer_channels
|
|
@@ -493,13 +493,10 @@ class ModelTrainer:
|
|
|
493
493
|
if run_name is None or run_name == "" or run_name == "None":
|
|
494
494
|
sum_train_lfs = sum([len(train_label) for train_label in self.train_labels])
|
|
495
495
|
sum_val_lfs = sum([len(val_label) for val_label in self.val_labels])
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
datetime.now().strftime("%y%m%d_%H%M%S")
|
|
501
|
-
+ f".{self.model_type}.n={sum_train_lfs + sum_val_lfs}"
|
|
502
|
-
)
|
|
496
|
+
run_name = (
|
|
497
|
+
datetime.now().strftime("%y%m%d_%H%M%S")
|
|
498
|
+
+ f".{self.model_type}.n={sum_train_lfs + sum_val_lfs}"
|
|
499
|
+
)
|
|
503
500
|
|
|
504
501
|
# If checkpoint path already exists, add suffix to prevent overwriting
|
|
505
502
|
if (Path(ckpt_dir) / run_name).exists() and (
|
|
@@ -642,10 +639,6 @@ class ModelTrainer:
|
|
|
642
639
|
if self.config.trainer_config.wandb.prv_runid == "":
|
|
643
640
|
self.config.trainer_config.wandb.prv_runid = None
|
|
644
641
|
|
|
645
|
-
# Default wandb run name to trainer run_name if not specified
|
|
646
|
-
if self.config.trainer_config.wandb.name is None:
|
|
647
|
-
self.config.trainer_config.wandb.name = self.config.trainer_config.run_name
|
|
648
|
-
|
|
649
642
|
# compute preprocessing parameters from the labels objects and fill in the config
|
|
650
643
|
self._setup_preprocessing_config()
|
|
651
644
|
|
|
@@ -695,9 +688,14 @@ class ModelTrainer:
|
|
|
695
688
|
)
|
|
696
689
|
)
|
|
697
690
|
|
|
698
|
-
# setup checkpoint path
|
|
691
|
+
# setup checkpoint path (generates run_name if not specified)
|
|
699
692
|
self._setup_ckpt_path()
|
|
700
693
|
|
|
694
|
+
# Default wandb run name to trainer run_name if not specified
|
|
695
|
+
# Note: This must come after _setup_ckpt_path() which generates run_name
|
|
696
|
+
if self.config.trainer_config.wandb.name is None:
|
|
697
|
+
self.config.trainer_config.wandb.name = self.config.trainer_config.run_name
|
|
698
|
+
|
|
701
699
|
# verify input_channels in model_config based on input image and pretrained model weights
|
|
702
700
|
self._verify_model_input_channels()
|
|
703
701
|
|
|
@@ -837,7 +835,7 @@ class ModelTrainer:
|
|
|
837
835
|
/ self.config.trainer_config.run_name
|
|
838
836
|
).as_posix(),
|
|
839
837
|
filename="best",
|
|
840
|
-
monitor="
|
|
838
|
+
monitor="val/loss",
|
|
841
839
|
mode="min",
|
|
842
840
|
)
|
|
843
841
|
callbacks.append(checkpoint_callback)
|
|
@@ -845,18 +843,20 @@ class ModelTrainer:
|
|
|
845
843
|
# csv log callback
|
|
846
844
|
csv_log_keys = [
|
|
847
845
|
"epoch",
|
|
848
|
-
"
|
|
849
|
-
"
|
|
846
|
+
"train/loss",
|
|
847
|
+
"val/loss",
|
|
850
848
|
"learning_rate",
|
|
851
|
-
"
|
|
852
|
-
"
|
|
849
|
+
"train/time",
|
|
850
|
+
"val/time",
|
|
853
851
|
]
|
|
854
852
|
if self.model_type in [
|
|
855
853
|
"single_instance",
|
|
856
854
|
"centered_instance",
|
|
857
855
|
"multi_class_topdown",
|
|
858
856
|
]:
|
|
859
|
-
csv_log_keys.extend(
|
|
857
|
+
csv_log_keys.extend(
|
|
858
|
+
[f"train/confmaps/{name}" for name in self.skeletons[0].node_names]
|
|
859
|
+
)
|
|
860
860
|
csv_logger = CSVLoggerCallback(
|
|
861
861
|
filepath=Path(self.config.trainer_config.ckpt_dir)
|
|
862
862
|
/ self.config.trainer_config.run_name
|
|
@@ -869,7 +869,7 @@ class ModelTrainer:
|
|
|
869
869
|
# early stopping callback
|
|
870
870
|
callbacks.append(
|
|
871
871
|
EarlyStopping(
|
|
872
|
-
monitor="
|
|
872
|
+
monitor="val/loss",
|
|
873
873
|
mode="min",
|
|
874
874
|
verbose=False,
|
|
875
875
|
min_delta=self.config.trainer_config.early_stopping.min_delta,
|
|
@@ -909,10 +909,6 @@ class ModelTrainer:
|
|
|
909
909
|
"To keep logs, set trainer_config.wandb.delete_local_logs=false"
|
|
910
910
|
)
|
|
911
911
|
|
|
912
|
-
# Learning rate monitor callback - logs LR at each step for dynamic schedulers
|
|
913
|
-
# Only added when wandb is enabled since it requires a logger
|
|
914
|
-
callbacks.append(LearningRateMonitor(logging_interval="step"))
|
|
915
|
-
|
|
916
912
|
# save the configs as yaml in the checkpoint dir
|
|
917
913
|
# Mask API key in both configs to prevent saving to disk
|
|
918
914
|
self.config.trainer_config.wandb.api_key = ""
|
|
@@ -1086,6 +1082,18 @@ class ModelTrainer:
|
|
|
1086
1082
|
if self.config.trainer_config.enable_progress_bar:
|
|
1087
1083
|
callbacks.append(SleapProgressBar())
|
|
1088
1084
|
|
|
1085
|
+
# Add epoch-end evaluation callback if enabled
|
|
1086
|
+
if self.config.trainer_config.eval.enabled:
|
|
1087
|
+
callbacks.append(
|
|
1088
|
+
EpochEndEvaluationCallback(
|
|
1089
|
+
skeleton=self.skeletons[0],
|
|
1090
|
+
videos=self.val_labels[0].videos,
|
|
1091
|
+
eval_frequency=self.config.trainer_config.eval.frequency,
|
|
1092
|
+
oks_stddev=self.config.trainer_config.eval.oks_stddev,
|
|
1093
|
+
oks_scale=self.config.trainer_config.eval.oks_scale,
|
|
1094
|
+
)
|
|
1095
|
+
)
|
|
1096
|
+
|
|
1089
1097
|
return loggers, callbacks
|
|
1090
1098
|
|
|
1091
1099
|
def _delete_cache_imgs(self):
|
|
@@ -1268,18 +1276,21 @@ class ModelTrainer:
|
|
|
1268
1276
|
# Define custom x-axes for wandb metrics
|
|
1269
1277
|
# Epoch-level metrics use epoch as x-axis, step-level use default global_step
|
|
1270
1278
|
wandb.define_metric("epoch")
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
wandb.define_metric("
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
wandb.define_metric("
|
|
1281
|
-
|
|
1282
|
-
|
|
1279
|
+
|
|
1280
|
+
# Training metrics (train/ prefix for grouping) - all use epoch x-axis
|
|
1281
|
+
wandb.define_metric("train/*", step_metric="epoch")
|
|
1282
|
+
wandb.define_metric("train/confmaps/*", step_metric="epoch")
|
|
1283
|
+
|
|
1284
|
+
# Validation metrics (val/ prefix for grouping)
|
|
1285
|
+
wandb.define_metric("val/*", step_metric="epoch")
|
|
1286
|
+
|
|
1287
|
+
# Evaluation metrics (eval/ prefix for grouping)
|
|
1288
|
+
wandb.define_metric("eval/*", step_metric="epoch")
|
|
1289
|
+
|
|
1290
|
+
# Visualization images (need explicit nested paths)
|
|
1291
|
+
wandb.define_metric("viz/*", step_metric="epoch")
|
|
1292
|
+
wandb.define_metric("viz/train/*", step_metric="epoch")
|
|
1293
|
+
wandb.define_metric("viz/val/*", step_metric="epoch")
|
|
1283
1294
|
|
|
1284
1295
|
self.config.trainer_config.wandb.current_run_id = wandb.run.id
|
|
1285
1296
|
wandb.config["run_name"] = self.config.trainer_config.wandb.name
|
|
@@ -1322,27 +1333,7 @@ class ModelTrainer:
|
|
|
1322
1333
|
logger.info(
|
|
1323
1334
|
f"Finished training loop. [{(time.time() - start_train_time) / 60:.1f} min]"
|
|
1324
1335
|
)
|
|
1325
|
-
|
|
1326
|
-
wandb.finish()
|
|
1327
|
-
|
|
1328
|
-
# Delete local wandb logs if configured
|
|
1329
|
-
wandb_config = self.config.trainer_config.wandb
|
|
1330
|
-
should_delete_wandb_logs = wandb_config.delete_local_logs is True or (
|
|
1331
|
-
wandb_config.delete_local_logs is None
|
|
1332
|
-
and wandb_config.wandb_mode != "offline"
|
|
1333
|
-
)
|
|
1334
|
-
if should_delete_wandb_logs:
|
|
1335
|
-
wandb_dir = (
|
|
1336
|
-
Path(self.config.trainer_config.ckpt_dir)
|
|
1337
|
-
/ self.config.trainer_config.run_name
|
|
1338
|
-
/ "wandb"
|
|
1339
|
-
)
|
|
1340
|
-
if wandb_dir.exists():
|
|
1341
|
-
logger.info(
|
|
1342
|
-
f"Deleting local wandb logs at {wandb_dir}... "
|
|
1343
|
-
"(set trainer_config.wandb.delete_local_logs=false to disable)"
|
|
1344
|
-
)
|
|
1345
|
-
shutil.rmtree(wandb_dir, ignore_errors=True)
|
|
1336
|
+
# Note: wandb.finish() is called in train.py after post-training evaluation
|
|
1346
1337
|
|
|
1347
1338
|
# delete image disk caching
|
|
1348
1339
|
if (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sleap-nn
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.0a3
|
|
4
4
|
Summary: Neural network backend for training and inference for animal pose estimation.
|
|
5
5
|
Author-email: Divya Seshadri Murali <dimurali@salk.edu>, Elizabeth Berrigan <eberrigan@salk.edu>, Vincent Tu <vitu@ucsd.edu>, Liezl Maree <lmaree@salk.edu>, David Samy <davidasamy@gmail.com>, Talmo Pereira <talmo@salk.edu>
|
|
6
6
|
License: BSD-3-Clause
|
|
@@ -13,7 +13,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
13
13
|
Requires-Python: <3.14,>=3.11
|
|
14
14
|
Description-Content-Type: text/markdown
|
|
15
15
|
License-File: LICENSE
|
|
16
|
-
Requires-Dist: sleap-io<0.7.0,>=0.6.
|
|
16
|
+
Requires-Dist: sleap-io<0.7.0,>=0.6.2
|
|
17
17
|
Requires-Dist: numpy
|
|
18
18
|
Requires-Dist: lightning
|
|
19
19
|
Requires-Dist: kornia
|
|
@@ -47,6 +47,17 @@ Requires-Dist: torchvision>=0.20.0; extra == "torch-cuda128"
|
|
|
47
47
|
Provides-Extra: torch-cuda130
|
|
48
48
|
Requires-Dist: torch; extra == "torch-cuda130"
|
|
49
49
|
Requires-Dist: torchvision>=0.20.0; extra == "torch-cuda130"
|
|
50
|
+
Provides-Extra: export
|
|
51
|
+
Requires-Dist: onnx>=1.15.0; extra == "export"
|
|
52
|
+
Requires-Dist: onnxruntime>=1.16.0; extra == "export"
|
|
53
|
+
Requires-Dist: onnxscript>=0.1.0; extra == "export"
|
|
54
|
+
Provides-Extra: export-gpu
|
|
55
|
+
Requires-Dist: onnx>=1.15.0; extra == "export-gpu"
|
|
56
|
+
Requires-Dist: onnxruntime-gpu>=1.16.0; extra == "export-gpu"
|
|
57
|
+
Requires-Dist: onnxscript>=0.1.0; extra == "export-gpu"
|
|
58
|
+
Provides-Extra: tensorrt
|
|
59
|
+
Requires-Dist: tensorrt>=10.0.0; extra == "tensorrt"
|
|
60
|
+
Requires-Dist: torch-tensorrt>=2.0.0; extra == "tensorrt"
|
|
50
61
|
Dynamic: license-file
|
|
51
62
|
|
|
52
63
|
# sleap-nn
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
sleap_nn/.DS_Store,sha256=HY8amA79eHkt7o5VUiNsMxkc9YwW6WIPyZbYRj_JdSU,6148
|
|
2
|
-
sleap_nn/__init__.py,sha256=
|
|
3
|
-
sleap_nn/cli.py,sha256=
|
|
4
|
-
sleap_nn/evaluation.py,sha256=
|
|
2
|
+
sleap_nn/__init__.py,sha256=rBA8WZU2_28NOBxfsqkSeA1hMG4pKEPiB2_yZYmhCIg,1362
|
|
3
|
+
sleap_nn/cli.py,sha256=O_edfRK6imWE8KFECQ-Ux0sqlLLbsyQYQjTLtQ63ry4,22295
|
|
4
|
+
sleap_nn/evaluation.py,sha256=SRO3qNOyyGoNBLLA2OKIUhvwyk0oI2ax1rtYmccx6m0,33785
|
|
5
5
|
sleap_nn/legacy_models.py,sha256=8aGK30DZv3pW2IKDBEWH1G2mrytjaxPQD4miPUehj0M,20258
|
|
6
|
-
sleap_nn/predict.py,sha256=
|
|
6
|
+
sleap_nn/predict.py,sha256=B0YhCdJ35TLOydpVvc3gHdkN45pf_ruhi7jZ_6Rrfqs,37089
|
|
7
7
|
sleap_nn/system_info.py,sha256=7tWe3y6s872nDbrZoHIdSs-w4w46Z4dEV2qCV-Fe7No,14711
|
|
8
|
-
sleap_nn/train.py,sha256=
|
|
8
|
+
sleap_nn/train.py,sha256=PEaK2B0S7DoImf8vt2cvJQS-n2NBw_pUJHmXy0J4NT0,30712
|
|
9
9
|
sleap_nn/architectures/__init__.py,sha256=w0XxQcx-CYyooszzvxRkKWiJkUg-26IlwQoGna8gn40,46
|
|
10
10
|
sleap_nn/architectures/common.py,sha256=MLv-zdHsWL5Q2ct_Wv6SQbRS-5hrFtjK_pvBEfwx-vU,3660
|
|
11
11
|
sleap_nn/architectures/convnext.py,sha256=l9lMJDxIMb-9MI3ShOtVwbOUMuwOLtSQlxiVyYHqjvE,13953
|
|
@@ -19,7 +19,7 @@ sleap_nn/config/__init__.py,sha256=l0xV1uJsGJfMPfWAqlUR7Ivu4cSCWsP-3Y9ueyPESuk,4
|
|
|
19
19
|
sleap_nn/config/data_config.py,sha256=5a5YlXm4V9qGvkqgFNy6o0XJ_Q06UFjpYJXmNHfvXEI,24021
|
|
20
20
|
sleap_nn/config/get_config.py,sha256=rjNUffKU9z-ohLwrOVmJNGCqwUM93eh68h4KJfrSy8Y,42396
|
|
21
21
|
sleap_nn/config/model_config.py,sha256=XFIbqFno7IkX0Se5WF_2_7aUalAlC2SvpDe-uP2TttM,57582
|
|
22
|
-
sleap_nn/config/trainer_config.py,sha256=
|
|
22
|
+
sleap_nn/config/trainer_config.py,sha256=Ob2UqU10DXsQOnDb0iJxy0qc82CfP6FkQZQkrCvTEEY,29120
|
|
23
23
|
sleap_nn/config/training_job_config.py,sha256=v12_ME_tBUg8JFwOxJNW4sDQn-SedDhiJOGz-TlRwT0,5861
|
|
24
24
|
sleap_nn/config/utils.py,sha256=GgWgVs7_N7ifsJ5OQG3_EyOagNyN3Dx7wS2BAlkaRkg,5553
|
|
25
25
|
sleap_nn/data/__init__.py,sha256=eMNvFJFa3gv5Rq8oK5wzo6zt1pOlwUGYf8EQii6bq7c,54
|
|
@@ -34,11 +34,32 @@ sleap_nn/data/normalization.py,sha256=5xEvcguG-fvAGObl4nWPZ9TEM5gvv0uYPGDuni34XI
|
|
|
34
34
|
sleap_nn/data/providers.py,sha256=0x6GFP1s1c08ji4p0M5V6p-dhT4Z9c-SI_Aw1DWX-uM,14272
|
|
35
35
|
sleap_nn/data/resizing.py,sha256=YFpSQduIBkRK39FYmrqDL-v8zMySlEs6TJxh6zb_0ZU,5076
|
|
36
36
|
sleap_nn/data/utils.py,sha256=rT0w7KMOTlzaeKWq1TqjbgC4Lvjz_G96McllvEOqXx8,5641
|
|
37
|
+
sleap_nn/export/__init__.py,sha256=E5FN_dG7583V_poTMS8jthL0Bf07qFCUA0kY2iewlvk,574
|
|
38
|
+
sleap_nn/export/cli.py,sha256=UcXrefi7YKunaIzbW97QeBQmbG3_-7Xa4XZgcwOGd9k,63568
|
|
39
|
+
sleap_nn/export/metadata.py,sha256=ory-smt2tpgObmld7WicxEFFHM03hl6yasl4N3KVTmA,7427
|
|
40
|
+
sleap_nn/export/utils.py,sha256=oSVf_PCG1IUZd6ZpgwOMPgqVkMxaO50tt2C-cTUMGg4,11414
|
|
41
|
+
sleap_nn/export/exporters/__init__.py,sha256=zBZMEjqzjGDq1KvIiKSVrHPplE4zVtUW3MHQ5kGg1M4,1459
|
|
42
|
+
sleap_nn/export/exporters/onnx_exporter.py,sha256=i3GWYn9NH2i_SJd2OmVHZgUfJJW9w-Swms1YDM-HhEc,2129
|
|
43
|
+
sleap_nn/export/exporters/tensorrt_exporter.py,sha256=5v_wnkal7bPKgrhQRL8akYikmQ_8PdqVr1ajpmU1oGo,9069
|
|
44
|
+
sleap_nn/export/predictors/__init__.py,sha256=xmDFeK05eHO9-Obue3jhBy4VMBW0NZjyGXSuL3RMhJY,1772
|
|
45
|
+
sleap_nn/export/predictors/base.py,sha256=5uJjMSuG4p-I3YPY9tpn6m8HdENcPqFtjpehL5mNuAg,584
|
|
46
|
+
sleap_nn/export/predictors/onnx.py,sha256=uiFIrCQBxZ_pK4x0JUx2N2k6qzN8KqfQtXAa4FkqVIs,5125
|
|
47
|
+
sleap_nn/export/predictors/tensorrt.py,sha256=lrYjw_lasjbGIku8aM5b26G92bXdvQaVAKrT6U4Xcco,10805
|
|
48
|
+
sleap_nn/export/wrappers/__init__.py,sha256=OeMCP8UCXNwmAYCrudKX-Gt4nhr9z13bzkdrZHjUNnk,984
|
|
49
|
+
sleap_nn/export/wrappers/base.py,sha256=sd55SCkjOdMYut9Yh8Yi1MMF8EY0U9oYtXadmi7xD80,3462
|
|
50
|
+
sleap_nn/export/wrappers/bottomup.py,sha256=rh4-wu4Oc8JWWW3K3xLhiTkyQ3dqhJ9QfMrPY65ck4Y,9237
|
|
51
|
+
sleap_nn/export/wrappers/bottomup_multiclass.py,sha256=r0-LJxv8zYTUr94ytlj1rp0GDuodY6CugLIl93IVhRA,7495
|
|
52
|
+
sleap_nn/export/wrappers/centered_instance.py,sha256=PShtVAlJhSbyuAVmRNjIM3PnOngaRFX3LtX-wO91Qqs,1704
|
|
53
|
+
sleap_nn/export/wrappers/centroid.py,sha256=3nbbysCkzHS9pRC2-37z4Z1Ol5XEdvYahyR4Gm25dqc,1840
|
|
54
|
+
sleap_nn/export/wrappers/single_instance.py,sha256=ZoQICK5_tuPjA19wsDmq8ljhM1Qus2_O8ZCDq6yd2L4,2826
|
|
55
|
+
sleap_nn/export/wrappers/topdown.py,sha256=_HAtEASBSfLTfFO9Q7honIpm4ECNoMR76JLkWyO-PF8,6809
|
|
56
|
+
sleap_nn/export/wrappers/topdown_multiclass.py,sha256=fJ3SC76BdB5QWOvMobCoKqf1OQBJGoi5MS0Bv6_gQmY,11920
|
|
37
57
|
sleap_nn/inference/__init__.py,sha256=eVkCmKrxHlDFJIlZTf8B5XEOcSyw-gPQymXMY5uShOM,170
|
|
38
|
-
sleap_nn/inference/bottomup.py,sha256=
|
|
58
|
+
sleap_nn/inference/bottomup.py,sha256=3s90aRlpIcRnSNe-R5-qiuX3S48kCWMpCl8YuNnTEDI,17084
|
|
39
59
|
sleap_nn/inference/identity.py,sha256=GjNDL9MfGqNyQaK4AE8JQCAE8gpMuE_Y-3r3Gpa53CE,6540
|
|
40
60
|
sleap_nn/inference/paf_grouping.py,sha256=7Fo9lCAj-zcHgv5rI5LIMYGcixCGNt_ZbSNs8Dik7l8,69973
|
|
41
61
|
sleap_nn/inference/peak_finding.py,sha256=L9LdYKt_Bfw7cxo6xEpgF8wXcZAwq5plCfmKJ839N40,13014
|
|
62
|
+
sleap_nn/inference/postprocessing.py,sha256=ZM_OH7_WIprieaujZ2Rk_34JhSDDzCry6Pq2YM_u5sg,8998
|
|
42
63
|
sleap_nn/inference/predictors.py,sha256=U114RlgOXKGm5iz1lnTfE3aN9S0WCh6gWhVP3KVewfc,158046
|
|
43
64
|
sleap_nn/inference/provenance.py,sha256=0BekXyvpLMb0Vv6DjpctlLduG9RN-Q8jt5zDm783eZE,11204
|
|
44
65
|
sleap_nn/inference/single_instance.py,sha256=rOns_5TsJ1rb-lwmHG3ZY-pOhXGN2D-SfW9RmBxxzcI,4089
|
|
@@ -52,14 +73,14 @@ sleap_nn/tracking/candidates/__init__.py,sha256=1O7NObIwshM7j1rLHmImbFphvkM9wY1j
|
|
|
52
73
|
sleap_nn/tracking/candidates/fixed_window.py,sha256=D80KMlTnenuQveQVVhk9j0G8yx6K324C7nMLHgG76e0,6296
|
|
53
74
|
sleap_nn/tracking/candidates/local_queues.py,sha256=Nx3R5wwEwq0gbfH-fi3oOumfkQo8_sYe5GN47pD9Be8,7305
|
|
54
75
|
sleap_nn/training/__init__.py,sha256=vNTKsIJPZHJwFSKn5PmjiiRJunR_9e7y4_v0S6rdF8U,32
|
|
55
|
-
sleap_nn/training/callbacks.py,sha256=
|
|
56
|
-
sleap_nn/training/lightning_modules.py,sha256=
|
|
76
|
+
sleap_nn/training/callbacks.py,sha256=7FvYLLoOxbjIu9v9zjDmzHZC4TW6y_P-N9J9GliHlSc,37944
|
|
77
|
+
sleap_nn/training/lightning_modules.py,sha256=z98NBTrNy-GfCw4zatummJhVUO1fdjv_kPweAKcoaXc,108394
|
|
57
78
|
sleap_nn/training/losses.py,sha256=gbdinUURh4QUzjmNd2UJpt4FXwecqKy9gHr65JZ1bZk,1632
|
|
58
|
-
sleap_nn/training/model_trainer.py,sha256=
|
|
79
|
+
sleap_nn/training/model_trainer.py,sha256=LHBIpjcI6WCJUxAHFKA-DSesNT3Nk4-RhSKlDaP4Fz4,58715
|
|
59
80
|
sleap_nn/training/utils.py,sha256=ivdkZEI0DkTCm6NPszsaDOh9jSfozkONZdl6TvvQUWI,20398
|
|
60
|
-
sleap_nn-0.1.
|
|
61
|
-
sleap_nn-0.1.
|
|
62
|
-
sleap_nn-0.1.
|
|
63
|
-
sleap_nn-0.1.
|
|
64
|
-
sleap_nn-0.1.
|
|
65
|
-
sleap_nn-0.1.
|
|
81
|
+
sleap_nn-0.1.0a3.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
82
|
+
sleap_nn-0.1.0a3.dist-info/METADATA,sha256=nx3yU6SNyPf_hNqCO1183zj3OEuxX3frrMqIr0MfNbo,6145
|
|
83
|
+
sleap_nn-0.1.0a3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
84
|
+
sleap_nn-0.1.0a3.dist-info/entry_points.txt,sha256=zfl5Y3hidZxWBvo8qXvu5piJAXJ_l6v7xVFm0gNiUoI,46
|
|
85
|
+
sleap_nn-0.1.0a3.dist-info/top_level.txt,sha256=Kz68iQ55K75LWgSeqz4V4SCMGeFFYH-KGBOyhQh3xZE,9
|
|
86
|
+
sleap_nn-0.1.0a3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|