sleap-nn 0.1.0a2__py3-none-any.whl → 0.1.0a4__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/architectures/convnext.py +5 -0
- sleap_nn/architectures/encoder_decoder.py +25 -6
- sleap_nn/architectures/swint.py +8 -0
- sleap_nn/cli.py +168 -39
- sleap_nn/evaluation.py +8 -0
- 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/peak_finding.py +47 -17
- sleap_nn/inference/postprocessing.py +284 -0
- sleap_nn/inference/predictors.py +213 -106
- sleap_nn/predict.py +35 -7
- sleap_nn/train.py +64 -0
- sleap_nn/training/callbacks.py +69 -22
- sleap_nn/training/lightning_modules.py +332 -30
- sleap_nn/training/model_trainer.py +67 -67
- {sleap_nn-0.1.0a2.dist-info → sleap_nn-0.1.0a4.dist-info}/METADATA +13 -1
- {sleap_nn-0.1.0a2.dist-info → sleap_nn-0.1.0a4.dist-info}/RECORD +40 -19
- {sleap_nn-0.1.0a2.dist-info → sleap_nn-0.1.0a4.dist-info}/WHEEL +0 -0
- {sleap_nn-0.1.0a2.dist-info → sleap_nn-0.1.0a4.dist-info}/entry_points.txt +0 -0
- {sleap_nn-0.1.0a2.dist-info → sleap_nn-0.1.0a4.dist-info}/licenses/LICENSE +0 -0
- {sleap_nn-0.1.0a2.dist-info → sleap_nn-0.1.0a4.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,
|
|
@@ -494,13 +493,10 @@ class ModelTrainer:
|
|
|
494
493
|
if run_name is None or run_name == "" or run_name == "None":
|
|
495
494
|
sum_train_lfs = sum([len(train_label) for train_label in self.train_labels])
|
|
496
495
|
sum_val_lfs = sum([len(val_label) for val_label in self.val_labels])
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
datetime.now().strftime("%y%m%d_%H%M%S")
|
|
502
|
-
+ f".{self.model_type}.n={sum_train_lfs + sum_val_lfs}"
|
|
503
|
-
)
|
|
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
|
+
)
|
|
504
500
|
|
|
505
501
|
# If checkpoint path already exists, add suffix to prevent overwriting
|
|
506
502
|
if (Path(ckpt_dir) / run_name).exists() and (
|
|
@@ -643,10 +639,6 @@ class ModelTrainer:
|
|
|
643
639
|
if self.config.trainer_config.wandb.prv_runid == "":
|
|
644
640
|
self.config.trainer_config.wandb.prv_runid = None
|
|
645
641
|
|
|
646
|
-
# Default wandb run name to trainer run_name if not specified
|
|
647
|
-
if self.config.trainer_config.wandb.name is None:
|
|
648
|
-
self.config.trainer_config.wandb.name = self.config.trainer_config.run_name
|
|
649
|
-
|
|
650
642
|
# compute preprocessing parameters from the labels objects and fill in the config
|
|
651
643
|
self._setup_preprocessing_config()
|
|
652
644
|
|
|
@@ -696,9 +688,14 @@ class ModelTrainer:
|
|
|
696
688
|
)
|
|
697
689
|
)
|
|
698
690
|
|
|
699
|
-
# setup checkpoint path
|
|
691
|
+
# setup checkpoint path (generates run_name if not specified)
|
|
700
692
|
self._setup_ckpt_path()
|
|
701
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
|
+
|
|
702
699
|
# verify input_channels in model_config based on input image and pretrained model weights
|
|
703
700
|
self._verify_model_input_channels()
|
|
704
701
|
|
|
@@ -838,7 +835,7 @@ class ModelTrainer:
|
|
|
838
835
|
/ self.config.trainer_config.run_name
|
|
839
836
|
).as_posix(),
|
|
840
837
|
filename="best",
|
|
841
|
-
monitor="
|
|
838
|
+
monitor="val/loss",
|
|
842
839
|
mode="min",
|
|
843
840
|
)
|
|
844
841
|
callbacks.append(checkpoint_callback)
|
|
@@ -846,18 +843,52 @@ class ModelTrainer:
|
|
|
846
843
|
# csv log callback
|
|
847
844
|
csv_log_keys = [
|
|
848
845
|
"epoch",
|
|
849
|
-
"
|
|
850
|
-
"
|
|
846
|
+
"train/loss",
|
|
847
|
+
"val/loss",
|
|
851
848
|
"learning_rate",
|
|
852
|
-
"
|
|
853
|
-
"
|
|
849
|
+
"train/time",
|
|
850
|
+
"val/time",
|
|
854
851
|
]
|
|
852
|
+
# Add model-specific keys for wandb parity
|
|
855
853
|
if self.model_type in [
|
|
856
854
|
"single_instance",
|
|
857
855
|
"centered_instance",
|
|
858
856
|
"multi_class_topdown",
|
|
859
857
|
]:
|
|
860
|
-
csv_log_keys.extend(
|
|
858
|
+
csv_log_keys.extend(
|
|
859
|
+
[f"train/confmaps/{name}" for name in self.skeletons[0].node_names]
|
|
860
|
+
)
|
|
861
|
+
if self.model_type == "bottomup":
|
|
862
|
+
csv_log_keys.extend(
|
|
863
|
+
[
|
|
864
|
+
"train/confmaps_loss",
|
|
865
|
+
"train/paf_loss",
|
|
866
|
+
"val/confmaps_loss",
|
|
867
|
+
"val/paf_loss",
|
|
868
|
+
]
|
|
869
|
+
)
|
|
870
|
+
if self.model_type == "multi_class_bottomup":
|
|
871
|
+
csv_log_keys.extend(
|
|
872
|
+
[
|
|
873
|
+
"train/confmaps_loss",
|
|
874
|
+
"train/classmap_loss",
|
|
875
|
+
"train/class_accuracy",
|
|
876
|
+
"val/confmaps_loss",
|
|
877
|
+
"val/classmap_loss",
|
|
878
|
+
"val/class_accuracy",
|
|
879
|
+
]
|
|
880
|
+
)
|
|
881
|
+
if self.model_type == "multi_class_topdown":
|
|
882
|
+
csv_log_keys.extend(
|
|
883
|
+
[
|
|
884
|
+
"train/confmaps_loss",
|
|
885
|
+
"train/classvector_loss",
|
|
886
|
+
"train/class_accuracy",
|
|
887
|
+
"val/confmaps_loss",
|
|
888
|
+
"val/classvector_loss",
|
|
889
|
+
"val/class_accuracy",
|
|
890
|
+
]
|
|
891
|
+
)
|
|
861
892
|
csv_logger = CSVLoggerCallback(
|
|
862
893
|
filepath=Path(self.config.trainer_config.ckpt_dir)
|
|
863
894
|
/ self.config.trainer_config.run_name
|
|
@@ -870,7 +901,7 @@ class ModelTrainer:
|
|
|
870
901
|
# early stopping callback
|
|
871
902
|
callbacks.append(
|
|
872
903
|
EarlyStopping(
|
|
873
|
-
monitor="
|
|
904
|
+
monitor="val/loss",
|
|
874
905
|
mode="min",
|
|
875
906
|
verbose=False,
|
|
876
907
|
min_delta=self.config.trainer_config.early_stopping.min_delta,
|
|
@@ -910,10 +941,6 @@ class ModelTrainer:
|
|
|
910
941
|
"To keep logs, set trainer_config.wandb.delete_local_logs=false"
|
|
911
942
|
)
|
|
912
943
|
|
|
913
|
-
# Learning rate monitor callback - logs LR at each step for dynamic schedulers
|
|
914
|
-
# Only added when wandb is enabled since it requires a logger
|
|
915
|
-
callbacks.append(LearningRateMonitor(logging_interval="step"))
|
|
916
|
-
|
|
917
944
|
# save the configs as yaml in the checkpoint dir
|
|
918
945
|
# Mask API key in both configs to prevent saving to disk
|
|
919
946
|
self.config.trainer_config.wandb.api_key = ""
|
|
@@ -1281,28 +1308,21 @@ class ModelTrainer:
|
|
|
1281
1308
|
# Define custom x-axes for wandb metrics
|
|
1282
1309
|
# Epoch-level metrics use epoch as x-axis, step-level use default global_step
|
|
1283
1310
|
wandb.define_metric("epoch")
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
wandb.define_metric("
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
wandb.define_metric("
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
wandb.define_metric("
|
|
1299
|
-
wandb.define_metric("val_oks_voc_mAP", step_metric="epoch")
|
|
1300
|
-
wandb.define_metric("val_oks_voc_mAR", step_metric="epoch")
|
|
1301
|
-
wandb.define_metric("val_avg_distance", step_metric="epoch")
|
|
1302
|
-
wandb.define_metric("val_p50_distance", step_metric="epoch")
|
|
1303
|
-
wandb.define_metric("val_mPCK", step_metric="epoch")
|
|
1304
|
-
wandb.define_metric("val_visibility_precision", step_metric="epoch")
|
|
1305
|
-
wandb.define_metric("val_visibility_recall", step_metric="epoch")
|
|
1311
|
+
|
|
1312
|
+
# Training metrics (train/ prefix for grouping) - all use epoch x-axis
|
|
1313
|
+
wandb.define_metric("train/*", step_metric="epoch")
|
|
1314
|
+
wandb.define_metric("train/confmaps/*", step_metric="epoch")
|
|
1315
|
+
|
|
1316
|
+
# Validation metrics (val/ prefix for grouping)
|
|
1317
|
+
wandb.define_metric("val/*", step_metric="epoch")
|
|
1318
|
+
|
|
1319
|
+
# Evaluation metrics (eval/ prefix for grouping)
|
|
1320
|
+
wandb.define_metric("eval/*", step_metric="epoch")
|
|
1321
|
+
|
|
1322
|
+
# Visualization images (need explicit nested paths)
|
|
1323
|
+
wandb.define_metric("viz/*", step_metric="epoch")
|
|
1324
|
+
wandb.define_metric("viz/train/*", step_metric="epoch")
|
|
1325
|
+
wandb.define_metric("viz/val/*", step_metric="epoch")
|
|
1306
1326
|
|
|
1307
1327
|
self.config.trainer_config.wandb.current_run_id = wandb.run.id
|
|
1308
1328
|
wandb.config["run_name"] = self.config.trainer_config.wandb.name
|
|
@@ -1345,27 +1365,7 @@ class ModelTrainer:
|
|
|
1345
1365
|
logger.info(
|
|
1346
1366
|
f"Finished training loop. [{(time.time() - start_train_time) / 60:.1f} min]"
|
|
1347
1367
|
)
|
|
1348
|
-
|
|
1349
|
-
wandb.finish()
|
|
1350
|
-
|
|
1351
|
-
# Delete local wandb logs if configured
|
|
1352
|
-
wandb_config = self.config.trainer_config.wandb
|
|
1353
|
-
should_delete_wandb_logs = wandb_config.delete_local_logs is True or (
|
|
1354
|
-
wandb_config.delete_local_logs is None
|
|
1355
|
-
and wandb_config.wandb_mode != "offline"
|
|
1356
|
-
)
|
|
1357
|
-
if should_delete_wandb_logs:
|
|
1358
|
-
wandb_dir = (
|
|
1359
|
-
Path(self.config.trainer_config.ckpt_dir)
|
|
1360
|
-
/ self.config.trainer_config.run_name
|
|
1361
|
-
/ "wandb"
|
|
1362
|
-
)
|
|
1363
|
-
if wandb_dir.exists():
|
|
1364
|
-
logger.info(
|
|
1365
|
-
f"Deleting local wandb logs at {wandb_dir}... "
|
|
1366
|
-
"(set trainer_config.wandb.delete_local_logs=false to disable)"
|
|
1367
|
-
)
|
|
1368
|
-
shutil.rmtree(wandb_dir, ignore_errors=True)
|
|
1368
|
+
# Note: wandb.finish() is called in train.py after post-training evaluation
|
|
1369
1369
|
|
|
1370
1370
|
# delete image disk caching
|
|
1371
1371
|
if (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sleap-nn
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.0a4
|
|
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
|
|
@@ -32,6 +32,7 @@ Requires-Dist: hydra-core
|
|
|
32
32
|
Requires-Dist: jupyter
|
|
33
33
|
Requires-Dist: jupyterlab
|
|
34
34
|
Requires-Dist: pyzmq
|
|
35
|
+
Requires-Dist: rich-click>=1.9.5
|
|
35
36
|
Provides-Extra: torch
|
|
36
37
|
Requires-Dist: torch; extra == "torch"
|
|
37
38
|
Requires-Dist: torchvision>=0.20.0; extra == "torch"
|
|
@@ -47,6 +48,17 @@ Requires-Dist: torchvision>=0.20.0; extra == "torch-cuda128"
|
|
|
47
48
|
Provides-Extra: torch-cuda130
|
|
48
49
|
Requires-Dist: torch; extra == "torch-cuda130"
|
|
49
50
|
Requires-Dist: torchvision>=0.20.0; extra == "torch-cuda130"
|
|
51
|
+
Provides-Extra: export
|
|
52
|
+
Requires-Dist: onnx>=1.15.0; extra == "export"
|
|
53
|
+
Requires-Dist: onnxruntime>=1.16.0; extra == "export"
|
|
54
|
+
Requires-Dist: onnxscript>=0.1.0; extra == "export"
|
|
55
|
+
Provides-Extra: export-gpu
|
|
56
|
+
Requires-Dist: onnx>=1.15.0; extra == "export-gpu"
|
|
57
|
+
Requires-Dist: onnxruntime-gpu>=1.16.0; extra == "export-gpu"
|
|
58
|
+
Requires-Dist: onnxscript>=0.1.0; extra == "export-gpu"
|
|
59
|
+
Provides-Extra: tensorrt
|
|
60
|
+
Requires-Dist: tensorrt>=10.0.0; extra == "tensorrt"
|
|
61
|
+
Requires-Dist: torch-tensorrt>=2.0.0; extra == "tensorrt"
|
|
50
62
|
Dynamic: license-file
|
|
51
63
|
|
|
52
64
|
# sleap-nn
|
|
@@ -1,18 +1,18 @@
|
|
|
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=W6NBNc9X-Rt5XX9EQSOZ0X2wfj-G4dWlPfkwt-wCUqw,1362
|
|
3
|
+
sleap_nn/cli.py,sha256=NFwxO3Fby_RgRroF7dNXsvWnBeILuVEylaMsLCLUMlY,24792
|
|
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=tN3vuP_fGCme7fLXd2b9DvItSr_pemzw8FUtIbkkU_U,36513
|
|
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
|
-
sleap_nn/architectures/convnext.py,sha256=
|
|
12
|
-
sleap_nn/architectures/encoder_decoder.py,sha256=
|
|
11
|
+
sleap_nn/architectures/convnext.py,sha256=Ba9SFQHBdfz8gcMYZPMItuW-FyQuHBgUU0M8MWhaHuY,14210
|
|
12
|
+
sleap_nn/architectures/encoder_decoder.py,sha256=1cBk9WU0zkXC2aK9XZy6VKHEe2hJEpIa-rwCxNgObZg,29292
|
|
13
13
|
sleap_nn/architectures/heads.py,sha256=5E-7kQ-b2gsL0EviQ8z3KS1DAAMT4F2ZnEzx7eSG5gg,21001
|
|
14
14
|
sleap_nn/architectures/model.py,sha256=1_dsP_4T9fsEVJjDt3er0haMKtbeM6w6JC6tc2jD0Gw,7139
|
|
15
|
-
sleap_nn/architectures/swint.py,sha256=
|
|
15
|
+
sleap_nn/architectures/swint.py,sha256=hlShh1Br0eTijir2U3np8sAaNJa12Xny0VzPx8HSaRo,15060
|
|
16
16
|
sleap_nn/architectures/unet.py,sha256=rAy2Omi6tv1MNW2nBn0Tw-94Nw_-1wFfCT3-IUyPcgo,11723
|
|
17
17
|
sleap_nn/architectures/utils.py,sha256=L0KVs0gbtG8U75Sl40oH_r_w2ySawh3oQPqIGi54HGo,2171
|
|
18
18
|
sleap_nn/config/__init__.py,sha256=l0xV1uJsGJfMPfWAqlUR7Ivu4cSCWsP-3Y9ueyPESuk,42
|
|
@@ -34,12 +34,33 @@ 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
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
|
-
sleap_nn/inference/peak_finding.py,sha256=
|
|
42
|
-
sleap_nn/inference/
|
|
61
|
+
sleap_nn/inference/peak_finding.py,sha256=l6PKGw7KiVxzd00cesUZsbttPfjP1NBy8WmxWQtBlak,14595
|
|
62
|
+
sleap_nn/inference/postprocessing.py,sha256=ZM_OH7_WIprieaujZ2Rk_34JhSDDzCry6Pq2YM_u5sg,8998
|
|
63
|
+
sleap_nn/inference/predictors.py,sha256=xZyuH2bmsj_NAXcaswDFWqqmYS57v4QtZIWdsFqb3Sc,160709
|
|
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
|
|
45
66
|
sleap_nn/inference/topdown.py,sha256=Ha0Nwx-XCH_rebIuIGhP0qW68QpjLB3XRr9rxt05JLs,35108
|
|
@@ -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=7WRT2pmQQ-hRdq9n7iHC_e0zH-vDphYfe0KHdD-UGg4,38216
|
|
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=okXTouoXzRcHcflRCdwR3NwUwSdX-ex1-rZOZHYCZLk,59964
|
|
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.0a4.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
82
|
+
sleap_nn-0.1.0a4.dist-info/METADATA,sha256=kA66dtTSVKAdFJcnvsSEMkrT3TRyGzHAcAsCIHzoqbE,6178
|
|
83
|
+
sleap_nn-0.1.0a4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
84
|
+
sleap_nn-0.1.0a4.dist-info/entry_points.txt,sha256=zfl5Y3hidZxWBvo8qXvu5piJAXJ_l6v7xVFm0gNiUoI,46
|
|
85
|
+
sleap_nn-0.1.0a4.dist-info/top_level.txt,sha256=Kz68iQ55K75LWgSeqz4V4SCMGeFFYH-KGBOyhQh3xZE,9
|
|
86
|
+
sleap_nn-0.1.0a4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|