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.
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.github/workflows/ci.yml +2 -7
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.github/workflows/docs.yml +1 -1
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/PKG-INFO +3 -15
- sleap_nn-0.1.0a0/docs/cli.md +312 -0
- sleap_nn-0.1.0a0/docs/colab_notebooks/Training_with_sleap_nn_on_colab.ipynb +476 -0
- sleap_nn-0.1.0a0/docs/colab_notebooks/index.md +22 -0
- sleap_nn-0.1.0a0/docs/config.md +899 -0
- sleap_nn-0.1.0a0/docs/core_components.md +40 -0
- sleap_nn-0.1.0a0/docs/example_notebooks.md +52 -0
- sleap_nn-0.1.0a0/docs/index.md +160 -0
- sleap_nn-0.1.0a0/docs/inference.md +368 -0
- sleap_nn-0.1.0a0/docs/installation.md +546 -0
- sleap_nn-0.1.0a0/docs/models.md +67 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_bottomup_convnext.yaml +4 -2
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_bottomup_unet_large_rf.yaml +2 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_bottomup_unet_medium_rf.yaml +2 -5
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_centroid_swint.yaml +4 -2
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_centroid_unet.yaml +2 -4
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_multi_class_bottomup_unet.yaml +4 -2
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_single_instance_unet_large_rf.yaml +2 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_single_instance_unet_medium_rf.yaml +2 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_topdown_centered_instance_unet_large_rf.yaml +2 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_topdown_centered_instance_unet_medium_rf.yaml +2 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/sample_configs/config_topdown_multi_class_centered_instance_unet.yaml +4 -2
- sleap_nn-0.1.0a0/docs/step_by_step_tutorial.md +540 -0
- sleap_nn-0.1.0a0/docs/training.md +354 -0
- sleap_nn-0.1.0a0/example_notebooks/augmentation_guide.py +734 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/example_notebooks/receptive_field_guide.py +20 -18
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/example_notebooks/training_demo.py +83 -102
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/mkdocs.yml +13 -35
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/pyproject.toml +2 -54
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/__init__.py +2 -4
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/convnext.py +0 -5
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/encoder_decoder.py +6 -25
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/swint.py +0 -8
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/cli.py +60 -364
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/config/data_config.py +5 -11
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/config/get_config.py +4 -10
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/config/trainer_config.py +0 -76
- sleap_nn-0.1.0a0/sleap_nn/data/augmentation.py +335 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/custom_datasets.py +39 -411
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/instance_cropping.py +1 -1
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/resizing.py +2 -2
- sleap_nn-0.1.0a0/sleap_nn/data/utils.py +149 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/evaluation.py +22 -81
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/bottomup.py +20 -86
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/peak_finding.py +19 -88
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/predictors.py +117 -224
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/legacy_models.py +11 -65
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/predict.py +9 -37
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/train.py +4 -74
- sleap_nn-0.1.0a0/sleap_nn/training/callbacks.py +664 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/training/lightning_modules.py +65 -602
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/training/model_trainer.py +184 -211
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn.egg-info/PKG-INFO +3 -15
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn.egg-info/SOURCES.txt +10 -68
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn.egg-info/requires.txt +2 -19
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/config/test_data_config.py +0 -59
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/config/test_trainer_config.py +0 -46
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/conftest.py +0 -1
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_custom_datasets.py +0 -80
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_utils.py +0 -62
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/test_bottomup.py +0 -91
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/test_peak_finding.py +0 -79
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/test_cli.py +14 -51
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/test_evaluation.py +10 -10
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/test_predict.py +92 -38
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/test_train.py +57 -69
- sleap_nn-0.1.0a0/tests/training/test_callbacks.py +1024 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/training/test_lightning_modules.py +0 -27
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/training/test_model_trainer.py +17 -176
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/uv.lock +178 -729
- sleap_nn-0.1.0/.github/ISSUE_TEMPLATE/bug_report.md +0 -74
- sleap_nn-0.1.0/.github/ISSUE_TEMPLATE/config.yml +0 -17
- sleap_nn-0.1.0/.github/ISSUE_TEMPLATE/feature_request.md +0 -23
- sleap_nn-0.1.0/docs/assets/images/bottomup_approach.png +0 -0
- sleap_nn-0.1.0/docs/assets/images/topdown_approach.jpg +0 -0
- sleap_nn-0.1.0/docs/assets/sleap_movie.gif +0 -0
- sleap_nn-0.1.0/docs/configuration/data.md +0 -288
- sleap_nn-0.1.0/docs/configuration/index.md +0 -54
- sleap_nn-0.1.0/docs/configuration/model.md +0 -534
- sleap_nn-0.1.0/docs/configuration/samples.md +0 -191
- sleap_nn-0.1.0/docs/configuration/trainer.md +0 -405
- sleap_nn-0.1.0/docs/getting-started/first-model.md +0 -297
- sleap_nn-0.1.0/docs/getting-started/index.md +0 -52
- sleap_nn-0.1.0/docs/getting-started/quickstart.md +0 -126
- sleap_nn-0.1.0/docs/guides/evaluation.md +0 -124
- sleap_nn-0.1.0/docs/guides/export.md +0 -215
- sleap_nn-0.1.0/docs/guides/index.md +0 -17
- sleap_nn-0.1.0/docs/guides/inference.md +0 -187
- sleap_nn-0.1.0/docs/guides/monitoring.md +0 -212
- sleap_nn-0.1.0/docs/guides/multi-gpu.md +0 -125
- sleap_nn-0.1.0/docs/guides/tracking.md +0 -158
- sleap_nn-0.1.0/docs/guides/training.md +0 -346
- sleap_nn-0.1.0/docs/help/faq.md +0 -158
- sleap_nn-0.1.0/docs/index.md +0 -118
- sleap_nn-0.1.0/docs/installation.md +0 -374
- sleap_nn-0.1.0/docs/reference/api.md +0 -251
- sleap_nn-0.1.0/docs/reference/cli.md +0 -254
- sleap_nn-0.1.0/docs/reference/evaluation_metrics.md +0 -116
- sleap_nn-0.1.0/docs/reference/index.md +0 -10
- sleap_nn-0.1.0/docs/reference/models.md +0 -348
- sleap_nn-0.1.0/docs/stylesheets/extra.css +0 -121
- sleap_nn-0.1.0/docs/tutorials/index.md +0 -21
- sleap_nn-0.1.0/docs/tutorials/notebooks.md +0 -69
- sleap_nn-0.1.0/example_notebooks/augmentation_guide.py +0 -632
- sleap_nn-0.1.0/sleap_nn/data/augmentation.py +0 -144
- sleap_nn-0.1.0/sleap_nn/data/skia_augmentation.py +0 -414
- sleap_nn-0.1.0/sleap_nn/data/utils.py +0 -267
- sleap_nn-0.1.0/sleap_nn/export/__init__.py +0 -21
- sleap_nn-0.1.0/sleap_nn/export/cli.py +0 -1778
- sleap_nn-0.1.0/sleap_nn/export/exporters/__init__.py +0 -51
- sleap_nn-0.1.0/sleap_nn/export/exporters/onnx_exporter.py +0 -80
- sleap_nn-0.1.0/sleap_nn/export/exporters/tensorrt_exporter.py +0 -291
- sleap_nn-0.1.0/sleap_nn/export/metadata.py +0 -225
- sleap_nn-0.1.0/sleap_nn/export/predictors/__init__.py +0 -63
- sleap_nn-0.1.0/sleap_nn/export/predictors/base.py +0 -22
- sleap_nn-0.1.0/sleap_nn/export/predictors/onnx.py +0 -154
- sleap_nn-0.1.0/sleap_nn/export/predictors/tensorrt.py +0 -312
- sleap_nn-0.1.0/sleap_nn/export/utils.py +0 -307
- sleap_nn-0.1.0/sleap_nn/export/wrappers/__init__.py +0 -25
- sleap_nn-0.1.0/sleap_nn/export/wrappers/base.py +0 -96
- sleap_nn-0.1.0/sleap_nn/export/wrappers/bottomup.py +0 -243
- sleap_nn-0.1.0/sleap_nn/export/wrappers/bottomup_multiclass.py +0 -195
- sleap_nn-0.1.0/sleap_nn/export/wrappers/centered_instance.py +0 -56
- sleap_nn-0.1.0/sleap_nn/export/wrappers/centroid.py +0 -58
- sleap_nn-0.1.0/sleap_nn/export/wrappers/single_instance.py +0 -83
- sleap_nn-0.1.0/sleap_nn/export/wrappers/topdown.py +0 -180
- sleap_nn-0.1.0/sleap_nn/export/wrappers/topdown_multiclass.py +0 -304
- sleap_nn-0.1.0/sleap_nn/inference/postprocessing.py +0 -284
- sleap_nn-0.1.0/sleap_nn/training/callbacks.py +0 -1605
- sleap_nn-0.1.0/sleap_nn/training/schedulers.py +0 -191
- sleap_nn-0.1.0/tests/export/__init__.py +0 -1
- sleap_nn-0.1.0/tests/export/conftest.py +0 -420
- sleap_nn-0.1.0/tests/export/test_cli.py +0 -349
- sleap_nn-0.1.0/tests/export/test_gpu.py +0 -221
- sleap_nn-0.1.0/tests/export/test_metadata.py +0 -490
- sleap_nn-0.1.0/tests/export/test_onnx_export.py +0 -200
- sleap_nn-0.1.0/tests/export/test_onnx_predictor.py +0 -285
- sleap_nn-0.1.0/tests/export/test_predictor_factory.py +0 -148
- sleap_nn-0.1.0/tests/export/test_utils.py +0 -804
- sleap_nn-0.1.0/tests/export/test_wrappers.py +0 -775
- sleap_nn-0.1.0/tests/fixtures/predictors.py +0 -86
- sleap_nn-0.1.0/tests/inference/test_postprocessing.py +0 -450
- sleap_nn-0.1.0/tests/test_parallel_caching.py +0 -347
- sleap_nn-0.1.0/tests/training/test_callbacks.py +0 -2381
- sleap_nn-0.1.0/tests/training/test_schedulers.py +0 -353
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.claude/commands/coverage.md +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.claude/commands/lint.md +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.claude/commands/pr-description.md +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.claude/skills/investigation/SKILL.md +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.dockerignore +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.github/workflows/build.yml +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.github/workflows/codespell.yml +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/.gitignore +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/CLAUDE.md +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/CONTRIBUTING.md +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/LICENSE +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/README.md +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/codecov.yml +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/assets/favicon.ico +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/docs/assets/sleap-logo.png +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/example_notebooks/README.md +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/scripts/cov_summary.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/scripts/gen_changelog.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/scripts/gen_ref_pages.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/setup.cfg +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/.DS_Store +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/__init__.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/common.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/heads.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/model.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/unet.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/architectures/utils.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/config/__init__.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/config/model_config.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/config/training_job_config.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/config/utils.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/__init__.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/confidence_maps.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/edge_maps.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/identity.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/instance_centroids.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/normalization.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/data/providers.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/__init__.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/identity.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/paf_grouping.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/provenance.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/single_instance.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/topdown.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/inference/utils.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/system_info.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/tracking/__init__.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/tracking/candidates/__init__.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/tracking/candidates/fixed_window.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/tracking/candidates/local_queues.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/tracking/track_instance.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/tracking/tracker.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/tracking/utils.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/training/__init__.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/training/losses.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn/training/utils.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn.egg-info/dependency_links.txt +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn.egg-info/entry_points.txt +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/sleap_nn.egg-info/top_level.txt +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/__init__.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/architectures/test_architecture_utils.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/architectures/test_common.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/architectures/test_convnext.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/architectures/test_encoder_decoder.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/architectures/test_heads.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/architectures/test_model.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/architectures/test_swint.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/architectures/test_unet.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/datasets/centered_pair_small.mp4 +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/datasets/minimal_instance.pkg.slp +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/datasets/small_robot.mp4 +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/datasets/small_robot_minimal.slp +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/inference/minimal_bboxes.pt +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/inference/minimal_cms.pt +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/get_dummy_activations.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/best_model.h5 +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/dummy_activations.h5 +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/initial_config.json +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/labels_gt.train.slp +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/labels_gt.val.slp +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/labels_pr.train.slp +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/labels_pr.val.slp +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/metrics.train.npz +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/metrics.val.npz +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/training_config.json +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.bottomup/training_log.csv +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/best_model.h5 +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/dummy_activations.h5 +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/initial_config.json +0 -0
- {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
- {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
- {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
- {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
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/metrics.train.npz +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/metrics.val.npz +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/training_config.json +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centered_instance/training_log.csv +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/best_model.h5 +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/dummy_activations.h5 +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/initial_config.json +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/labels_gt.train.slp +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/labels_gt.val.slp +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/labels_pr.train.slp +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/labels_pr.val.slp +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/metrics.train.npz +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/metrics.val.npz +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/training_config.json +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_instance.UNet.centroid/training_log.csv +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_robot.UNet.single_instance/best_model.h5 +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_robot.UNet.single_instance/dummy_activations.h5 +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_robot.UNet.single_instance/initial_config.json +0 -0
- {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
- {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
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_robot.UNet.single_instance/training_config.json +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_models/minimal_robot.UNet.single_instance/training_log.csv +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_sleap_json_configs/bottomup_multiclass_training_config.json +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_sleap_json_configs/bottomup_training_config.json +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_sleap_json_configs/centered_instance_training_config.json +0 -0
- {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
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_sleap_json_configs/centroid_training_config.json +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_sleap_json_configs/single_instance_training_config.json +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/legacy_sleap_json_configs/topdown_training_config.json +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_bottomup/best.ckpt +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_bottomup/initial_config.yaml +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_bottomup/labels_train_gt_0.slp +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_bottomup/labels_val_gt_0.slp +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_bottomup/training_config.yaml +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_bottomup/training_log.csv +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centered_instance/best.ckpt +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centered_instance/initial_config.yaml +0 -0
- {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
- {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
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centered_instance/training_config.yaml +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centered_instance/training_log.csv +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centroid/best.ckpt +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centroid/initial_config.yaml +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centroid/labels_train_gt_0.slp +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centroid/labels_val_gt_0.slp +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centroid/training_config.yaml +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_centroid/training_log.csv +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_bottomup/best.ckpt +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_bottomup/initial_config.yaml +0 -0
- {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
- {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
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_bottomup/training_config.yaml +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_bottomup/training_log.csv +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_centered_instance/best.ckpt +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_centered_instance/initial_config.yaml +0 -0
- {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
- {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
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_centered_instance/training_config.yaml +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_multiclass_centered_instance/training_log.csv +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_single_instance/best.ckpt +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_single_instance/initial_config.yaml +0 -0
- {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
- {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
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_single_instance/training_config.yaml +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/minimal_instance_single_instance/training_log.csv +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/best.ckpt +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/initial_config.yaml +0 -0
- {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
- {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
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/pred_test.slp +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/pred_train_0.slp +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/pred_val_0.slp +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/test_pred_metrics.npz +0 -0
- {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
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/training_config.yaml +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/assets/model_ckpts/single_instance_with_metrics/training_log.csv +0 -0
- {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
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/config/test_config_utils.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/config/test_model_config.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/config/test_training_job_config.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_augmentation.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_confmaps.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_edge_maps.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_identity.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_instance_centroids.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_instance_cropping.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_normalization.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_providers.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/data/test_resizing.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/fixtures/__init__.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/fixtures/datasets.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/fixtures/inference.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/fixtures/legacy_models.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/fixtures/legacy_sleap_json_configs.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/fixtures/model_ckpts.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/__init__.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/test_paf_grouping.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/test_predictors.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/test_provenance.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/test_single_instance.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/test_topdown.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/inference/test_utils.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/test_legacy_models.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/test_system_info.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/test_version.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/tracking/candidates/test_fixed_window.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/tracking/candidates/test_local_queues.py +0 -0
- {sleap_nn-0.1.0 → sleap_nn-0.1.0a0}/tests/tracking/test_tracker.py +0 -0
- {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
|
|
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,
|
|
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 --
|
|
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.
|
|
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.
|
|
16
|
+
Requires-Dist: sleap-io<0.7.0,>=0.6.0
|
|
17
17
|
Requires-Dist: numpy
|
|
18
18
|
Requires-Dist: lightning
|
|
19
|
-
Requires-Dist:
|
|
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
|