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.
Files changed (40) hide show
  1. sleap_nn/__init__.py +1 -1
  2. sleap_nn/architectures/convnext.py +5 -0
  3. sleap_nn/architectures/encoder_decoder.py +25 -6
  4. sleap_nn/architectures/swint.py +8 -0
  5. sleap_nn/cli.py +168 -39
  6. sleap_nn/evaluation.py +8 -0
  7. sleap_nn/export/__init__.py +21 -0
  8. sleap_nn/export/cli.py +1778 -0
  9. sleap_nn/export/exporters/__init__.py +51 -0
  10. sleap_nn/export/exporters/onnx_exporter.py +80 -0
  11. sleap_nn/export/exporters/tensorrt_exporter.py +291 -0
  12. sleap_nn/export/metadata.py +225 -0
  13. sleap_nn/export/predictors/__init__.py +63 -0
  14. sleap_nn/export/predictors/base.py +22 -0
  15. sleap_nn/export/predictors/onnx.py +154 -0
  16. sleap_nn/export/predictors/tensorrt.py +312 -0
  17. sleap_nn/export/utils.py +307 -0
  18. sleap_nn/export/wrappers/__init__.py +25 -0
  19. sleap_nn/export/wrappers/base.py +96 -0
  20. sleap_nn/export/wrappers/bottomup.py +243 -0
  21. sleap_nn/export/wrappers/bottomup_multiclass.py +195 -0
  22. sleap_nn/export/wrappers/centered_instance.py +56 -0
  23. sleap_nn/export/wrappers/centroid.py +58 -0
  24. sleap_nn/export/wrappers/single_instance.py +83 -0
  25. sleap_nn/export/wrappers/topdown.py +180 -0
  26. sleap_nn/export/wrappers/topdown_multiclass.py +304 -0
  27. sleap_nn/inference/peak_finding.py +47 -17
  28. sleap_nn/inference/postprocessing.py +284 -0
  29. sleap_nn/inference/predictors.py +213 -106
  30. sleap_nn/predict.py +35 -7
  31. sleap_nn/train.py +64 -0
  32. sleap_nn/training/callbacks.py +69 -22
  33. sleap_nn/training/lightning_modules.py +332 -30
  34. sleap_nn/training/model_trainer.py +67 -67
  35. {sleap_nn-0.1.0a2.dist-info → sleap_nn-0.1.0a4.dist-info}/METADATA +13 -1
  36. {sleap_nn-0.1.0a2.dist-info → sleap_nn-0.1.0a4.dist-info}/RECORD +40 -19
  37. {sleap_nn-0.1.0a2.dist-info → sleap_nn-0.1.0a4.dist-info}/WHEEL +0 -0
  38. {sleap_nn-0.1.0a2.dist-info → sleap_nn-0.1.0a4.dist-info}/entry_points.txt +0 -0
  39. {sleap_nn-0.1.0a2.dist-info → sleap_nn-0.1.0a4.dist-info}/licenses/LICENSE +0 -0
  40. {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
- if self._get_trainer_devices() > 1:
498
- run_name = f"{self.model_type}.n={sum_train_lfs + sum_val_lfs}"
499
- else:
500
- run_name = (
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="val_loss",
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
- "train_loss",
850
- "val_loss",
846
+ "train/loss",
847
+ "val/loss",
851
848
  "learning_rate",
852
- "train_time",
853
- "val_time",
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(self.skeletons[0].node_names)
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="val_loss",
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
- wandb.define_metric("val_loss", step_metric="epoch")
1285
- wandb.define_metric("val_time", step_metric="epoch")
1286
- wandb.define_metric("train_time", step_metric="epoch")
1287
- # Per-node losses use epoch as x-axis
1288
- for node_name in self.skeletons[0].node_names:
1289
- wandb.define_metric(node_name, step_metric="epoch")
1290
-
1291
- # Visualization images use epoch as x-axis
1292
- wandb.define_metric("train_predictions*", step_metric="epoch")
1293
- wandb.define_metric("val_predictions*", step_metric="epoch")
1294
- wandb.define_metric("train_pafs*", step_metric="epoch")
1295
- wandb.define_metric("val_pafs*", step_metric="epoch")
1296
-
1297
- # Evaluation metrics use epoch as x-axis
1298
- wandb.define_metric("val_mOKS", step_metric="epoch")
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
- if self.trainer.global_rank == 0 and self.config.trainer_config.use_wandb:
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.0a2
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=s3sIImYR5tiP-PfftEj7J8P1Au2nRXj4XWowznrVwm8,1362
3
- sleap_nn/cli.py,sha256=U4hpEcOxK7a92GeItY95E2DRm5P1ME1GqU__mxaDcW0,21167
4
- sleap_nn/evaluation.py,sha256=sKwLnHbCcaNzPs7CJtgRmFcDRFwPMjCxB92viZvinVI,33498
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=8QKjRbS-L-6HF1NFJWioBPv3HSzUpFr2oGEB5hRJzQA,35523
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=XvVhzMXL9rNQLx1-6jIcp5BAO1pR7AZjdphMn5ZX-_I,27558
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=l9lMJDxIMb-9MI3ShOtVwbOUMuwOLtSQlxiVyYHqjvE,13953
12
- sleap_nn/architectures/encoder_decoder.py,sha256=f3DUFJo6RrIUposdC3Ytyblr5J0tAeZ_si9dm_m_PhM,28339
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=S66Wd0j8Hp-rGlv1C60WSw3AwGyAyGetgfwpL0nIK_M,14687
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=L9LdYKt_Bfw7cxo6xEpgF8wXcZAwq5plCfmKJ839N40,13014
42
- sleap_nn/inference/predictors.py,sha256=U114RlgOXKGm5iz1lnTfE3aN9S0WCh6gWhVP3KVewfc,158046
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=ZO88NFGZi53Wn4qM6yp3Bk3HFmhkYSGqeMc1QJKirLo,35995
56
- sleap_nn/training/lightning_modules.py,sha256=slkVtQ7r6LatWLYzxcq6x1RALYNyHTRcqiXXwD-x0PA,95420
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=mf6FOdGDal2mMP0F1xD9jVQ54wbUST0ovRt6OjXzVyg,60580
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.0a2.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
61
- sleap_nn-0.1.0a2.dist-info/METADATA,sha256=w0dUxvJerGIpu4hlYgGbimjCAooCcf_4NcAzo8T5Sos,5637
62
- sleap_nn-0.1.0a2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
63
- sleap_nn-0.1.0a2.dist-info/entry_points.txt,sha256=zfl5Y3hidZxWBvo8qXvu5piJAXJ_l6v7xVFm0gNiUoI,46
64
- sleap_nn-0.1.0a2.dist-info/top_level.txt,sha256=Kz68iQ55K75LWgSeqz4V4SCMGeFFYH-KGBOyhQh3xZE,9
65
- sleap_nn-0.1.0a2.dist-info/RECORD,,
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,,