sleap-nn 0.1.0__tar.gz → 0.1.0a0__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 (357) hide show
  1. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.github/workflows/ci.yml +2 -7
  2. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.github/workflows/docs.yml +1 -1
  3. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/PKG-INFO +3 -15
  4. sleap_nn-0.1.0a0/docs/cli.md +312 -0
  5. sleap_nn-0.1.0a0/docs/colab_notebooks/Training_with_sleap_nn_on_colab.ipynb +476 -0
  6. sleap_nn-0.1.0a0/docs/colab_notebooks/index.md +22 -0
  7. sleap_nn-0.1.0a0/docs/config.md +899 -0
  8. sleap_nn-0.1.0a0/docs/core_components.md +40 -0
  9. sleap_nn-0.1.0a0/docs/example_notebooks.md +52 -0
  10. sleap_nn-0.1.0a0/docs/index.md +160 -0
  11. sleap_nn-0.1.0a0/docs/inference.md +368 -0
  12. sleap_nn-0.1.0a0/docs/installation.md +546 -0
  13. sleap_nn-0.1.0a0/docs/models.md +67 -0
  14. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_bottomup_convnext.yaml +4 -2
  15. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_bottomup_unet_large_rf.yaml +2 -0
  16. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_bottomup_unet_medium_rf.yaml +2 -5
  17. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_centroid_swint.yaml +4 -2
  18. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_centroid_unet.yaml +2 -4
  19. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_multi_class_bottomup_unet.yaml +4 -2
  20. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_single_instance_unet_large_rf.yaml +2 -0
  21. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_single_instance_unet_medium_rf.yaml +2 -0
  22. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_topdown_centered_instance_unet_large_rf.yaml +2 -0
  23. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_topdown_centered_instance_unet_medium_rf.yaml +2 -0
  24. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_topdown_multi_class_centered_instance_unet.yaml +4 -2
  25. sleap_nn-0.1.0a0/docs/step_by_step_tutorial.md +540 -0
  26. sleap_nn-0.1.0a0/docs/training.md +354 -0
  27. sleap_nn-0.1.0a0/example_notebooks/augmentation_guide.py +734 -0
  28. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/example_notebooks/receptive_field_guide.py +20 -18
  29. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/example_notebooks/training_demo.py +83 -102
  30. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/mkdocs.yml +13 -35
  31. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/pyproject.toml +2 -54
  32. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/__init__.py +2 -4
  33. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/convnext.py +0 -5
  34. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/encoder_decoder.py +6 -25
  35. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/swint.py +0 -8
  36. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/cli.py +60 -364
  37. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/config/data_config.py +5 -11
  38. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/config/get_config.py +4 -10
  39. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/config/trainer_config.py +0 -76
  40. sleap_nn-0.1.0a0/sleap_nn/data/augmentation.py +335 -0
  41. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/custom_datasets.py +39 -411
  42. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/instance_cropping.py +1 -1
  43. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/resizing.py +2 -2
  44. sleap_nn-0.1.0a0/sleap_nn/data/utils.py +149 -0
  45. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/evaluation.py +22 -81
  46. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/bottomup.py +20 -86
  47. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/peak_finding.py +19 -88
  48. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/predictors.py +117 -224
  49. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/legacy_models.py +11 -65
  50. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/predict.py +9 -37
  51. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/train.py +4 -74
  52. sleap_nn-0.1.0a0/sleap_nn/training/callbacks.py +664 -0
  53. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/training/lightning_modules.py +65 -602
  54. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/training/model_trainer.py +184 -211
  55. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn.egg-info/PKG-INFO +3 -15
  56. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn.egg-info/SOURCES.txt +10 -68
  57. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn.egg-info/requires.txt +2 -19
  58. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/config/test_data_config.py +0 -59
  59. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/config/test_trainer_config.py +0 -46
  60. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/conftest.py +0 -1
  61. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_custom_datasets.py +0 -80
  62. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_utils.py +0 -62
  63. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/test_bottomup.py +0 -91
  64. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/test_peak_finding.py +0 -79
  65. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/test_cli.py +14 -51
  66. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/test_evaluation.py +10 -10
  67. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/test_predict.py +92 -38
  68. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/test_train.py +57 -69
  69. sleap_nn-0.1.0a0/tests/training/test_callbacks.py +1024 -0
  70. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/training/test_lightning_modules.py +0 -27
  71. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/training/test_model_trainer.py +17 -176
  72. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/uv.lock +178 -729
  73. sleap_nn-0.1.0/.github/ISSUE_TEMPLATE/bug_report.md +0 -74
  74. sleap_nn-0.1.0/.github/ISSUE_TEMPLATE/config.yml +0 -17
  75. sleap_nn-0.1.0/.github/ISSUE_TEMPLATE/feature_request.md +0 -23
  76. sleap_nn-0.1.0/docs/assets/images/bottomup_approach.png +0 -0
  77. sleap_nn-0.1.0/docs/assets/images/topdown_approach.jpg +0 -0
  78. sleap_nn-0.1.0/docs/assets/sleap_movie.gif +0 -0
  79. sleap_nn-0.1.0/docs/configuration/data.md +0 -288
  80. sleap_nn-0.1.0/docs/configuration/index.md +0 -54
  81. sleap_nn-0.1.0/docs/configuration/model.md +0 -534
  82. sleap_nn-0.1.0/docs/configuration/samples.md +0 -191
  83. sleap_nn-0.1.0/docs/configuration/trainer.md +0 -405
  84. sleap_nn-0.1.0/docs/getting-started/first-model.md +0 -297
  85. sleap_nn-0.1.0/docs/getting-started/index.md +0 -52
  86. sleap_nn-0.1.0/docs/getting-started/quickstart.md +0 -126
  87. sleap_nn-0.1.0/docs/guides/evaluation.md +0 -124
  88. sleap_nn-0.1.0/docs/guides/export.md +0 -215
  89. sleap_nn-0.1.0/docs/guides/index.md +0 -17
  90. sleap_nn-0.1.0/docs/guides/inference.md +0 -187
  91. sleap_nn-0.1.0/docs/guides/monitoring.md +0 -212
  92. sleap_nn-0.1.0/docs/guides/multi-gpu.md +0 -125
  93. sleap_nn-0.1.0/docs/guides/tracking.md +0 -158
  94. sleap_nn-0.1.0/docs/guides/training.md +0 -346
  95. sleap_nn-0.1.0/docs/help/faq.md +0 -158
  96. sleap_nn-0.1.0/docs/index.md +0 -118
  97. sleap_nn-0.1.0/docs/installation.md +0 -374
  98. sleap_nn-0.1.0/docs/reference/api.md +0 -251
  99. sleap_nn-0.1.0/docs/reference/cli.md +0 -254
  100. sleap_nn-0.1.0/docs/reference/evaluation_metrics.md +0 -116
  101. sleap_nn-0.1.0/docs/reference/index.md +0 -10
  102. sleap_nn-0.1.0/docs/reference/models.md +0 -348
  103. sleap_nn-0.1.0/docs/stylesheets/extra.css +0 -121
  104. sleap_nn-0.1.0/docs/tutorials/index.md +0 -21
  105. sleap_nn-0.1.0/docs/tutorials/notebooks.md +0 -69
  106. sleap_nn-0.1.0/example_notebooks/augmentation_guide.py +0 -632
  107. sleap_nn-0.1.0/sleap_nn/data/augmentation.py +0 -144
  108. sleap_nn-0.1.0/sleap_nn/data/skia_augmentation.py +0 -414
  109. sleap_nn-0.1.0/sleap_nn/data/utils.py +0 -267
  110. sleap_nn-0.1.0/sleap_nn/export/__init__.py +0 -21
  111. sleap_nn-0.1.0/sleap_nn/export/cli.py +0 -1778
  112. sleap_nn-0.1.0/sleap_nn/export/exporters/__init__.py +0 -51
  113. sleap_nn-0.1.0/sleap_nn/export/exporters/onnx_exporter.py +0 -80
  114. sleap_nn-0.1.0/sleap_nn/export/exporters/tensorrt_exporter.py +0 -291
  115. sleap_nn-0.1.0/sleap_nn/export/metadata.py +0 -225
  116. sleap_nn-0.1.0/sleap_nn/export/predictors/__init__.py +0 -63
  117. sleap_nn-0.1.0/sleap_nn/export/predictors/base.py +0 -22
  118. sleap_nn-0.1.0/sleap_nn/export/predictors/onnx.py +0 -154
  119. sleap_nn-0.1.0/sleap_nn/export/predictors/tensorrt.py +0 -312
  120. sleap_nn-0.1.0/sleap_nn/export/utils.py +0 -307
  121. sleap_nn-0.1.0/sleap_nn/export/wrappers/__init__.py +0 -25
  122. sleap_nn-0.1.0/sleap_nn/export/wrappers/base.py +0 -96
  123. sleap_nn-0.1.0/sleap_nn/export/wrappers/bottomup.py +0 -243
  124. sleap_nn-0.1.0/sleap_nn/export/wrappers/bottomup_multiclass.py +0 -195
  125. sleap_nn-0.1.0/sleap_nn/export/wrappers/centered_instance.py +0 -56
  126. sleap_nn-0.1.0/sleap_nn/export/wrappers/centroid.py +0 -58
  127. sleap_nn-0.1.0/sleap_nn/export/wrappers/single_instance.py +0 -83
  128. sleap_nn-0.1.0/sleap_nn/export/wrappers/topdown.py +0 -180
  129. sleap_nn-0.1.0/sleap_nn/export/wrappers/topdown_multiclass.py +0 -304
  130. sleap_nn-0.1.0/sleap_nn/inference/postprocessing.py +0 -284
  131. sleap_nn-0.1.0/sleap_nn/training/callbacks.py +0 -1605
  132. sleap_nn-0.1.0/sleap_nn/training/schedulers.py +0 -191
  133. sleap_nn-0.1.0/tests/export/__init__.py +0 -1
  134. sleap_nn-0.1.0/tests/export/conftest.py +0 -420
  135. sleap_nn-0.1.0/tests/export/test_cli.py +0 -349
  136. sleap_nn-0.1.0/tests/export/test_gpu.py +0 -221
  137. sleap_nn-0.1.0/tests/export/test_metadata.py +0 -490
  138. sleap_nn-0.1.0/tests/export/test_onnx_export.py +0 -200
  139. sleap_nn-0.1.0/tests/export/test_onnx_predictor.py +0 -285
  140. sleap_nn-0.1.0/tests/export/test_predictor_factory.py +0 -148
  141. sleap_nn-0.1.0/tests/export/test_utils.py +0 -804
  142. sleap_nn-0.1.0/tests/export/test_wrappers.py +0 -775
  143. sleap_nn-0.1.0/tests/fixtures/predictors.py +0 -86
  144. sleap_nn-0.1.0/tests/inference/test_postprocessing.py +0 -450
  145. sleap_nn-0.1.0/tests/test_parallel_caching.py +0 -347
  146. sleap_nn-0.1.0/tests/training/test_callbacks.py +0 -2381
  147. sleap_nn-0.1.0/tests/training/test_schedulers.py +0 -353
  148. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.claude/commands/coverage.md +0 -0
  149. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.claude/commands/lint.md +0 -0
  150. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.claude/commands/pr-description.md +0 -0
  151. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.claude/skills/investigation/SKILL.md +0 -0
  152. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.dockerignore +0 -0
  153. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.github/workflows/build.yml +0 -0
  154. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.github/workflows/codespell.yml +0 -0
  155. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.gitignore +0 -0
  156. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/CLAUDE.md +0 -0
  157. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/CONTRIBUTING.md +0 -0
  158. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/LICENSE +0 -0
  159. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/README.md +0 -0
  160. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/codecov.yml +0 -0
  161. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/assets/favicon.ico +0 -0
  162. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/assets/sleap-logo.png +0 -0
  163. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/example_notebooks/README.md +0 -0
  164. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/scripts/cov_summary.py +0 -0
  165. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/scripts/gen_changelog.py +0 -0
  166. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/scripts/gen_ref_pages.py +0 -0
  167. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/setup.cfg +0 -0
  168. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/.DS_Store +0 -0
  169. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/__init__.py +0 -0
  170. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/common.py +0 -0
  171. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/heads.py +0 -0
  172. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/model.py +0 -0
  173. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/unet.py +0 -0
  174. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/utils.py +0 -0
  175. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/config/__init__.py +0 -0
  176. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/config/model_config.py +0 -0
  177. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/config/training_job_config.py +0 -0
  178. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/config/utils.py +0 -0
  179. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/__init__.py +0 -0
  180. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/confidence_maps.py +0 -0
  181. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/edge_maps.py +0 -0
  182. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/identity.py +0 -0
  183. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/instance_centroids.py +0 -0
  184. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/normalization.py +0 -0
  185. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/providers.py +0 -0
  186. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/__init__.py +0 -0
  187. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/identity.py +0 -0
  188. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/paf_grouping.py +0 -0
  189. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/provenance.py +0 -0
  190. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/single_instance.py +0 -0
  191. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/topdown.py +0 -0
  192. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/utils.py +0 -0
  193. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/system_info.py +0 -0
  194. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/tracking/__init__.py +0 -0
  195. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/tracking/candidates/__init__.py +0 -0
  196. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/tracking/candidates/fixed_window.py +0 -0
  197. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/tracking/candidates/local_queues.py +0 -0
  198. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/tracking/track_instance.py +0 -0
  199. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/tracking/tracker.py +0 -0
  200. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/tracking/utils.py +0 -0
  201. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/training/__init__.py +0 -0
  202. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/training/losses.py +0 -0
  203. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/training/utils.py +0 -0
  204. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn.egg-info/dependency_links.txt +0 -0
  205. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn.egg-info/entry_points.txt +0 -0
  206. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn.egg-info/top_level.txt +0 -0
  207. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/__init__.py +0 -0
  208. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/architectures/test_architecture_utils.py +0 -0
  209. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/architectures/test_common.py +0 -0
  210. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/architectures/test_convnext.py +0 -0
  211. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/architectures/test_encoder_decoder.py +0 -0
  212. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/architectures/test_heads.py +0 -0
  213. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/architectures/test_model.py +0 -0
  214. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/architectures/test_swint.py +0 -0
  215. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/architectures/test_unet.py +0 -0
  216. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/datasets/centered_pair_small.mp4 +0 -0
  217. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/datasets/minimal_instance.pkg.slp +0 -0
  218. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/datasets/small_robot.mp4 +0 -0
  219. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/datasets/small_robot_minimal.slp +0 -0
  220. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/inference/minimal_bboxes.pt +0 -0
  221. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/inference/minimal_cms.pt +0 -0
  222. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/get_dummy_activations.py +0 -0
  223. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/min_tracks_2node.UNet.bottomup_multiclass/best_model.h5 +0 -0
  224. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/min_tracks_2node.UNet.bottomup_multiclass/dummy_activations.h5 +0 -0
  225. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/min_tracks_2node.UNet.bottomup_multiclass/initial_config.json +0 -0
  226. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/min_tracks_2node.UNet.bottomup_multiclass/training_config.json +0 -0
  227. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/min_tracks_2node.UNet.topdown_multiclass/best_model.h5 +0 -0
  228. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/min_tracks_2node.UNet.topdown_multiclass/dummy_activations.h5 +0 -0
  229. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/min_tracks_2node.UNet.topdown_multiclass/initial_config.json +0 -0
  230. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/min_tracks_2node.UNet.topdown_multiclass/training_config.json +0 -0
  231. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/best_model.h5 +0 -0
  232. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/dummy_activations.h5 +0 -0
  233. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/initial_config.json +0 -0
  234. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/labels_gt.train.slp +0 -0
  235. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/labels_gt.val.slp +0 -0
  236. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/labels_pr.train.slp +0 -0
  237. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/labels_pr.val.slp +0 -0
  238. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/metrics.train.npz +0 -0
  239. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/metrics.val.npz +0 -0
  240. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/training_config.json +0 -0
  241. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/training_log.csv +0 -0
  242. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/best_model.h5 +0 -0
  243. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/dummy_activations.h5 +0 -0
  244. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/initial_config.json +0 -0
  245. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/labels_gt.train.slp +0 -0
  246. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/labels_gt.val.slp +0 -0
  247. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/labels_pr.train.slp +0 -0
  248. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/labels_pr.val.slp +0 -0
  249. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/metrics.train.npz +0 -0
  250. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/metrics.val.npz +0 -0
  251. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/training_config.json +0 -0
  252. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/training_log.csv +0 -0
  253. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/best_model.h5 +0 -0
  254. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/dummy_activations.h5 +0 -0
  255. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/initial_config.json +0 -0
  256. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/labels_gt.train.slp +0 -0
  257. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/labels_gt.val.slp +0 -0
  258. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/labels_pr.train.slp +0 -0
  259. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/labels_pr.val.slp +0 -0
  260. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/metrics.train.npz +0 -0
  261. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/metrics.val.npz +0 -0
  262. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/training_config.json +0 -0
  263. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/training_log.csv +0 -0
  264. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_robot.UNet.single_instance/best_model.h5 +0 -0
  265. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_robot.UNet.single_instance/dummy_activations.h5 +0 -0
  266. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_robot.UNet.single_instance/initial_config.json +0 -0
  267. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_robot.UNet.single_instance/labels_gt.train.slp +0 -0
  268. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_robot.UNet.single_instance/labels_gt.val.slp +0 -0
  269. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_robot.UNet.single_instance/training_config.json +0 -0
  270. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_robot.UNet.single_instance/training_log.csv +0 -0
  271. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_sleap_json_configs/bottomup_multiclass_training_config.json +0 -0
  272. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_sleap_json_configs/bottomup_training_config.json +0 -0
  273. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_sleap_json_configs/centered_instance_training_config.json +0 -0
  274. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_sleap_json_configs/centered_instance_with_scaling_training_config.json +0 -0
  275. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_sleap_json_configs/centroid_training_config.json +0 -0
  276. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_sleap_json_configs/single_instance_training_config.json +0 -0
  277. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_sleap_json_configs/topdown_training_config.json +0 -0
  278. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_bottomup/best.ckpt +0 -0
  279. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_bottomup/initial_config.yaml +0 -0
  280. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_bottomup/labels_train_gt_0.slp +0 -0
  281. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_bottomup/labels_val_gt_0.slp +0 -0
  282. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_bottomup/training_config.yaml +0 -0
  283. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_bottomup/training_log.csv +0 -0
  284. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centered_instance/best.ckpt +0 -0
  285. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centered_instance/initial_config.yaml +0 -0
  286. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centered_instance/labels_train_gt_0.slp +0 -0
  287. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centered_instance/labels_val_gt_0.slp +0 -0
  288. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centered_instance/training_config.yaml +0 -0
  289. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centered_instance/training_log.csv +0 -0
  290. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centroid/best.ckpt +0 -0
  291. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centroid/initial_config.yaml +0 -0
  292. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centroid/labels_train_gt_0.slp +0 -0
  293. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centroid/labels_val_gt_0.slp +0 -0
  294. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centroid/training_config.yaml +0 -0
  295. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centroid/training_log.csv +0 -0
  296. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_bottomup/best.ckpt +0 -0
  297. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_bottomup/initial_config.yaml +0 -0
  298. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_bottomup/labels_train_gt_0.slp +0 -0
  299. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_bottomup/labels_val_gt_0.slp +0 -0
  300. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_bottomup/training_config.yaml +0 -0
  301. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_bottomup/training_log.csv +0 -0
  302. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_centered_instance/best.ckpt +0 -0
  303. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_centered_instance/initial_config.yaml +0 -0
  304. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_centered_instance/labels_train_gt_0.slp +0 -0
  305. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_centered_instance/labels_val_gt_0.slp +0 -0
  306. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_centered_instance/training_config.yaml +0 -0
  307. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_centered_instance/training_log.csv +0 -0
  308. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_single_instance/best.ckpt +0 -0
  309. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_single_instance/initial_config.yaml +0 -0
  310. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_single_instance/labels_train_gt_0.slp +0 -0
  311. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_single_instance/labels_val_gt_0.slp +0 -0
  312. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_single_instance/training_config.yaml +0 -0
  313. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_single_instance/training_log.csv +0 -0
  314. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/best.ckpt +0 -0
  315. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/initial_config.yaml +0 -0
  316. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/labels_train_gt_0.slp +0 -0
  317. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/labels_val_gt_0.slp +0 -0
  318. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/pred_test.slp +0 -0
  319. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/pred_train_0.slp +0 -0
  320. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/pred_val_0.slp +0 -0
  321. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/test_pred_metrics.npz +0 -0
  322. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/train_0_pred_metrics.npz +0 -0
  323. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/training_config.yaml +0 -0
  324. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/training_log.csv +0 -0
  325. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/val_0_pred_metrics.npz +0 -0
  326. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/config/test_config_utils.py +0 -0
  327. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/config/test_model_config.py +0 -0
  328. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/config/test_training_job_config.py +0 -0
  329. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_augmentation.py +0 -0
  330. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_confmaps.py +0 -0
  331. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_edge_maps.py +0 -0
  332. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_identity.py +0 -0
  333. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_instance_centroids.py +0 -0
  334. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_instance_cropping.py +0 -0
  335. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_normalization.py +0 -0
  336. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_providers.py +0 -0
  337. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_resizing.py +0 -0
  338. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/fixtures/__init__.py +0 -0
  339. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/fixtures/datasets.py +0 -0
  340. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/fixtures/inference.py +0 -0
  341. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/fixtures/legacy_models.py +0 -0
  342. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/fixtures/legacy_sleap_json_configs.py +0 -0
  343. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/fixtures/model_ckpts.py +0 -0
  344. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/__init__.py +0 -0
  345. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/test_paf_grouping.py +0 -0
  346. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/test_predictors.py +0 -0
  347. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/test_provenance.py +0 -0
  348. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/test_single_instance.py +0 -0
  349. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/test_topdown.py +0 -0
  350. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/test_utils.py +0 -0
  351. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/test_legacy_models.py +0 -0
  352. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/test_system_info.py +0 -0
  353. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/test_version.py +0 -0
  354. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/tracking/candidates/test_fixed_window.py +0 -0
  355. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/tracking/candidates/test_local_queues.py +0 -0
  356. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/tracking/test_tracker.py +0 -0
  357. {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/training/test_training_utils.py +0 -0
@@ -82,11 +82,6 @@ jobs:
82
82
  if: matrix.os != 'self-hosted-gpu'
83
83
  run: uv sync --extra torch-cpu
84
84
 
85
- - name: Install graphics dependencies (Ubuntu)
86
- if: matrix.os == 'ubuntu'
87
- run: |
88
- sudo apt-get update && sudo apt-get install -y libglapi-mesa libegl-mesa0 libegl1 libopengl0 libgl1 libglx-mesa0
89
-
90
85
  - name: Print environment info
91
86
  run: |
92
87
  echo "=== UV Environment ==="
@@ -108,7 +103,7 @@ jobs:
108
103
  print('CUDA is not available')
109
104
  " || echo "CUDA check failed"
110
105
  echo "=== Import Test ==="
111
- uv run --frozen --extra torch-cpu python -c "import torch; import lightning; import skia; print('All imports successful')" || echo "Import test failed"
106
+ uv run --frozen --extra torch-cpu python -c "import torch; import lightning; import kornia; print('All imports successful')" || echo "Import test failed"
112
107
 
113
108
  - name: Check MPS backend (macOS only)
114
109
  if: runner.os == 'macOS'
@@ -131,7 +126,7 @@ jobs:
131
126
  - name: Run pytest
132
127
  run: |
133
128
  echo "=== Final environment check before tests ==="
134
- uv run --frozen --extra torch-cpu python -c "import numpy, torch, lightning, skia; print(f'All packages available: numpy={numpy.__version__}, torch={torch.__version__}')"
129
+ uv run --frozen --extra torch-cpu python -c "import numpy, torch, lightning, kornia; print(f'All packages available: numpy={numpy.__version__}, torch={torch.__version__}')"
135
130
  echo "=== Running pytest ==="
136
131
  uv run --frozen --extra torch-cpu pytest --cov=sleap_nn --cov-report=xml --durations=-1 tests/
137
132
 
@@ -57,7 +57,7 @@ jobs:
57
57
  env:
58
58
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
59
59
  run: |
60
- uv run mike deploy --update-aliases --allow-empty --push "${{ github.event.release.tag_name }}" prerelease
60
+ uv run mike deploy --allow-empty --push "${{ github.event.release.tag_name }}"
61
61
 
62
62
  - name: Build and upload docs (dev)
63
63
  if: ${{ github.event_name == 'push' }}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sleap-nn
3
- Version: 0.1.0
3
+ Version: 0.1.0a0
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,10 +13,10 @@ 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.2
16
+ Requires-Dist: sleap-io<0.7.0,>=0.6.0
17
17
  Requires-Dist: numpy
18
18
  Requires-Dist: lightning
19
- Requires-Dist: skia-python>=87.0
19
+ Requires-Dist: kornia
20
20
  Requires-Dist: jsonpickle
21
21
  Requires-Dist: scipy
22
22
  Requires-Dist: attrs
@@ -32,7 +32,6 @@ 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
36
35
  Provides-Extra: torch
37
36
  Requires-Dist: torch; extra == "torch"
38
37
  Requires-Dist: torchvision>=0.20.0; extra == "torch"
@@ -48,17 +47,6 @@ Requires-Dist: torchvision>=0.20.0; extra == "torch-cuda128"
48
47
  Provides-Extra: torch-cuda130
49
48
  Requires-Dist: torch; extra == "torch-cuda130"
50
49
  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.13.0; (sys_platform == "linux" or sys_platform == "win32") and extra == "tensorrt"
61
- Requires-Dist: torch-tensorrt>=2.5.0; (sys_platform == "linux" or sys_platform == "win32") and extra == "tensorrt"
62
50
  Dynamic: license-file
63
51
 
64
52
  # sleap-nn
@@ -0,0 +1,312 @@
1
+ # CLI Reference
2
+
3
+ This page provides a quick reference for all `sleap-nn` command-line interface (CLI) commands. For detailed usage and examples, see the linked guides.
4
+
5
+ ## Commands Overview
6
+
7
+ | Command | Description | Guide |
8
+ |---------|-------------|-------|
9
+ | [`sleap-nn train`](#sleap-nn-train) | Train pose estimation models | [Training Guide](training.md) |
10
+ | [`sleap-nn track`](#sleap-nn-track) | Run inference and/or tracking | [Inference Guide](inference.md) |
11
+ | [`sleap-nn eval`](#sleap-nn-eval) | Evaluate predictions against ground truth | [Inference Guide](inference.md#evaluation-metrics) |
12
+ | [`sleap-nn system`](#sleap-nn-system) | Display system info and GPU diagnostics | - |
13
+
14
+ ## Global Options
15
+
16
+ | Option | Short | Description |
17
+ |--------|-------|-------------|
18
+ | `--version` | `-v` | Show sleap-nn version and exit |
19
+
20
+ ```bash
21
+ sleap-nn --version
22
+ # Output: sleap-nn 0.1.0a0
23
+ ```
24
+
25
+ ---
26
+
27
+ ## `sleap-nn train`
28
+
29
+ Train SLEAP models using a configuration file.
30
+
31
+ ```bash
32
+ sleap-nn train --config-dir <dir> --config-name <name> [options] [overrides]
33
+ ```
34
+
35
+ ### Options
36
+
37
+ | Option | Short | Description |
38
+ |--------|-------|-------------|
39
+ | `--config-name` | `-c` | Name of the config file (without `.yaml` extension) |
40
+ | `--config-dir` | `-d` | Path to the directory containing the config file |
41
+ | `--video-paths` | `-v` | Video paths to replace existing paths in labels (can be specified multiple times) |
42
+ | `--video-path-map` | | Map old video path to new path (takes two arguments: OLD NEW) |
43
+ | `--prefix-map` | | Map old path prefix to new prefix (takes two arguments: OLD NEW) |
44
+
45
+ ### Config Overrides
46
+
47
+ Override any configuration value directly from the command line:
48
+
49
+ ```bash
50
+ # Change max epochs
51
+ sleap-nn train -c config -d /path/to/dir trainer_config.max_epochs=100
52
+
53
+ # Change batch size
54
+ sleap-nn train -c config -d /path/to/dir trainer_config.train_data_loader.batch_size=8
55
+
56
+ # Set training data path
57
+ sleap-nn train -c config -d /path/to/dir "data_config.train_labels_path=[train.slp]"
58
+
59
+ # Resume from checkpoint
60
+ sleap-nn train -c config -d /path/to/dir trainer_config.resume_ckpt_path=/path/to/best.ckpt
61
+ ```
62
+
63
+ ### Video Path Remapping
64
+
65
+ When training on a different machine than where labels were created:
66
+
67
+ ```bash
68
+ # Replace paths by order
69
+ sleap-nn train -c config -d /path/to/dir \
70
+ --video-paths /new/path/video1.mp4 \
71
+ --video-paths /new/path/video2.mp4
72
+
73
+ # Map specific paths
74
+ sleap-nn train -c config -d /path/to/dir \
75
+ --video-path-map /old/video.mp4 /new/video.mp4
76
+
77
+ # Replace path prefixes (updates all matching videos)
78
+ sleap-nn train -c config -d /path/to/dir \
79
+ --prefix-map /old/server/data /new/local/data
80
+ ```
81
+
82
+ See [Remapping Video Paths](training.md#remapping-video-paths) for more details.
83
+
84
+ ---
85
+
86
+ ## `sleap-nn track`
87
+
88
+ Run inference on videos or labels files, with optional tracking.
89
+
90
+ ```bash
91
+ sleap-nn track --data_path <input> --model_paths <model_dir> [options]
92
+ ```
93
+
94
+ ### Essential Options
95
+
96
+ | Option | Short | Description | Default |
97
+ |--------|-------|-------------|---------|
98
+ | `--data_path` | `-i` | Path to video (`.mp4`) or labels (`.slp`) file | Required |
99
+ | `--model_paths` | `-m` | Path to model checkpoint directory (can be specified multiple times for top-down) | Required* |
100
+ | `--output_path` | `-o` | Output path for predictions | `<input>.predictions.slp` |
101
+ | `--device` | `-d` | Device to use (`cpu`, `cuda`, `cuda:0`, `mps`, `auto`) | `auto` |
102
+ | `--batch_size` | `-b` | Frames per batch (higher = faster but more memory). Note: `--queue_maxsize` should be at least 2x batch size. | `4` |
103
+ | `--queue_maxsize` | | Maximum size of the frame buffer queue (should be at least 2x batch size) | `8` |
104
+ | `--max_instances` | `-n` | Maximum instances per frame | `None` |
105
+ | `--tracking` | `-t` | Enable tracking | `False` |
106
+
107
+ *Not required for track-only workflow on labeled data.
108
+
109
+ ### Common Examples
110
+
111
+ ```bash
112
+ # Basic inference
113
+ sleap-nn track -i video.mp4 -m models/bottomup/
114
+
115
+ # Top-down inference (two models)
116
+ sleap-nn track -i video.mp4 \
117
+ -m models/centroid/ \
118
+ -m models/centered_instance/
119
+
120
+ # Inference with tracking
121
+ sleap-nn track -i video.mp4 -m models/bottomup/ -t
122
+
123
+ # Specific frames only
124
+ sleap-nn track -i video.mp4 -m models/bottomup/ --frames 0-100,200-300
125
+
126
+ # Track-only (no inference, just assign tracks to existing labels)
127
+ sleap-nn track -i labels.slp -t
128
+ ```
129
+
130
+ ### All Options by Category
131
+
132
+ #### Model Configuration
133
+
134
+ | Option | Description | Default |
135
+ |--------|-------------|---------|
136
+ | `--backbone_ckpt_path` | Path to alternative backbone weights | `None` |
137
+ | `--head_ckpt_path` | Path to alternative head weights | `None` |
138
+
139
+ #### Image Pre-processing
140
+
141
+ | Option | Description | Default |
142
+ |--------|-------------|---------|
143
+ | `--max_height` | Pad image to this height | From training config |
144
+ | `--max_width` | Pad image to this width | From training config |
145
+ | `--input_scale` | Scale factor for input image | From training config |
146
+ | `--crop_size` | Crop size for centered-instance models | From training config |
147
+ | `--ensure_rgb` | Convert to RGB (3 channels) | `False` |
148
+ | `--ensure_grayscale` | Convert to grayscale (1 channel) | `False` |
149
+ | `--anchor_part` | Node name for centroid anchor | From training config |
150
+
151
+ #### Data Selection
152
+
153
+ | Option | Description | Default |
154
+ |--------|-------------|---------|
155
+ | `--frames` | Frame indices (e.g., `0-100,200-300`) | All frames |
156
+ | `--video_index` | Video index in `.slp` file | `None` |
157
+ | `--video_dataset` | Dataset name for HDF5 videos | `None` |
158
+ | `--video_input_format` | Input format for HDF5 videos | `channels_last` |
159
+ | `--only_labeled_frames` | Only run on labeled frames | `False` |
160
+ | `--only_suggested_frames` | Only run on suggested frames | `False` |
161
+ | `--exclude_user_labeled` | Skip frames with user-labeled instances | `False` |
162
+ | `--only_predicted_frames` | Only run on frames with existing predictions | `False` |
163
+ | `--no_empty_frames` | Remove empty frames from output | `False` |
164
+
165
+ #### Peak Detection
166
+
167
+ | Option | Description | Default |
168
+ |--------|-------------|---------|
169
+ | `--peak_threshold` | Minimum confidence for valid peaks | `0.2` |
170
+ | `--integral_refinement` | Refinement method (`integral` or `None`) | `integral` |
171
+ | `--integral_patch_size` | Patch size for integral refinement | `5` |
172
+
173
+ #### Tracking Options
174
+
175
+ | Option | Description | Default |
176
+ |--------|-------------|---------|
177
+ | `--tracking` / `-t` | Enable tracking | `False` |
178
+ | `--tracking_window_size` | Frames to look back for candidates | `5` |
179
+ | `--candidates_method` | `fixed_window` or `local_queues` | `fixed_window` |
180
+ | `--features` | Feature type: `keypoints`, `centroids`, `bboxes`, `image` | `keypoints` |
181
+ | `--scoring_method` | Matching score: `oks`, `cosine_sim`, `iou`, `euclidean_dist` | `oks` |
182
+ | `--scoring_reduction` | Score reduction: `mean`, `max`, `robust_quantile` | `mean` |
183
+ | `--robust_best_instance` | Quantile for robust similarity (0-1, or 1 for max) | `1.0` |
184
+ | `--track_matching_method` | Matching algorithm: `hungarian`, `greedy` | `hungarian` |
185
+ | `--max_tracks` | Maximum number of tracks (local queues only) | `None` |
186
+ | `--min_new_track_points` | Minimum points to spawn new track | `0` |
187
+ | `--min_match_points` | Minimum points for match candidates | `0` |
188
+ | `--post_connect_single_breaks` | Connect single track breaks (local queues only) | `False` |
189
+
190
+ #### Optical Flow Tracking
191
+
192
+ | Option | Description | Default |
193
+ |--------|-------------|---------|
194
+ | `--use_flow` | Use optical flow for tracking | `False` |
195
+ | `--of_img_scale` | Image scale for optical flow (lower = faster) | `1.0` |
196
+ | `--of_window_size` | Window size at each pyramid level | `21` |
197
+ | `--of_max_levels` | Number of pyramid levels | `3` |
198
+
199
+ #### Bottom-Up Specific
200
+
201
+ | Option | Description | Default |
202
+ |--------|-------------|---------|
203
+ | `--max_edge_length_ratio` | Max edge length as fraction of image size | `0.25` |
204
+ | `--dist_penalty_weight` | Distance penalty weight | `1.0` |
205
+ | `--n_points` | Points to sample along line integral | `10` |
206
+ | `--min_instance_peaks` | Minimum peaks for valid instance | `0` |
207
+ | `--min_line_scores` | Minimum line score for PAF matching | `0.25` |
208
+
209
+ #### Legacy Tracking Options
210
+
211
+ !!! warning
212
+ These options are provided for backwards compatibility and may be removed in future releases. Use `--max_instances` instead.
213
+
214
+ | Option | Description | Default |
215
+ |--------|-------------|---------|
216
+ | `--tracking_target_instance_count` | Target instances per frame | `0` |
217
+ | `--tracking_pre_cull_to_target` | Cull instances before tracking | `0` |
218
+ | `--tracking_pre_cull_iou_threshold` | IOU threshold for pre-cull | `0` |
219
+ | `--tracking_clean_instance_count` | Target instances after tracking | `0` |
220
+ | `--tracking_clean_iou_threshold` | IOU threshold for post-tracking cull | `0` |
221
+
222
+ See [Inference Guide](inference.md) for detailed examples and explanations.
223
+
224
+ ---
225
+
226
+ ## `sleap-nn eval`
227
+
228
+ Evaluate predictions against ground truth labels.
229
+
230
+ ```bash
231
+ sleap-nn eval --ground_truth_path <gt.slp> --predicted_path <pred.slp> [options]
232
+ ```
233
+
234
+ ### Options
235
+
236
+ | Option | Short | Description | Default |
237
+ |--------|-------|-------------|---------|
238
+ | `--ground_truth_path` | `-g` | Path to ground truth labels (`.slp`) | Required |
239
+ | `--predicted_path` | `-p` | Path to predicted labels (`.slp`) | Required |
240
+ | `--save_metrics` | `-s` | Path to save metrics (`.npz`) | `None` |
241
+ | `--oks_stddev` | | Standard deviation for OKS calculation | `0.05` |
242
+ | `--oks_scale` | | Scale factor for OKS calculation | `None` |
243
+ | `--match_threshold` | | Threshold for instance matching | `0.0` |
244
+ | `--user_labels_only` | | Only evaluate user-labeled frames | `False` |
245
+
246
+ ### Example
247
+
248
+ ```bash
249
+ sleap-nn eval \
250
+ -g ground_truth.slp \
251
+ -p predictions.slp \
252
+ -s metrics.npz
253
+ ```
254
+
255
+ See [Evaluation Metrics](inference.md#evaluation-metrics) for more details.
256
+
257
+ ---
258
+
259
+ ## `sleap-nn system`
260
+
261
+ Display system information and GPU diagnostics. Useful for troubleshooting GPU issues and verifying your installation.
262
+
263
+ ```bash
264
+ sleap-nn system
265
+ ```
266
+
267
+ ### Output Includes
268
+
269
+ - Python version and platform
270
+ - PyTorch version and build info
271
+ - CUDA/cuDNN versions with driver compatibility check
272
+ - GPU details (name, compute capability, memory)
273
+ - Functional GPU tests (tensor operations, convolution)
274
+ - Installed package versions (sleap-nn, sleap-io, torch, etc.)
275
+
276
+ ### Example Output
277
+
278
+ ```
279
+ System Information
280
+ ==================
281
+ Python: 3.12.8
282
+ Platform: Linux-6.14.0-27-generic-x86_64-with-glibc2.39
283
+ PyTorch: 2.7.0+cu130
284
+
285
+ CUDA Available: Yes
286
+ CUDA Version: 13.0
287
+ cuDNN Version: 90800
288
+ Driver Version: 570.133.20
289
+ ...
290
+ ```
291
+
292
+ This command is particularly helpful when:
293
+
294
+ - Debugging GPU detection issues
295
+ - Verifying CUDA/cuDNN compatibility
296
+ - Reporting issues or asking for help
297
+
298
+ ---
299
+
300
+ ## Environment Variables
301
+
302
+ | Variable | Description |
303
+ |----------|-------------|
304
+ | `CUDA_VISIBLE_DEVICES` | Control which GPUs are visible (e.g., `0,1`) |
305
+ | `WANDB_API_KEY` | Weights & Biases API key for logging |
306
+
307
+ ## See Also
308
+
309
+ - [Installation Guide](installation.md) - Setup instructions
310
+ - [Configuration Guide](config.md) - Full config reference
311
+ - [Training Guide](training.md) - Detailed training documentation
312
+ - [Inference Guide](inference.md) - Detailed inference documentation