Releases: DeepLabCut/DeepLabCut
DeepLabCut - 3.0
Familiar workflows, modern foundations, better performance
DeepLabCut 3.0 introduces a PyTorch-first training and inference stack while keeping the core DeepLabCut workflow familiar.
Projects still follow the same labeling, training, evaluation, and video-analysis pipeline used throughout the 2.x series, but the underlying engine has been substantially modernized.
For users who have already been following the release candidates, many of these changes will already feel familiar.
DeepLabCut 3.0 consolidates these incremental changes into a stable release.
Increased model performance and speed
![]() |
![]() |
| Pose estimation performance of the 3.0 PyTorch models compared against previous TensorFlow models on the DeepLabCut Openfield dataset (see PR #2613); RMSE: root mean squared error. *Values from Mathis et al. 2018. | |
![]() |
| Comparison of the new BUCTD model architectures with DLCRNet and DEKR on the Marmoset, Fish and Trimice dataset. From Zhou et al., ICCV 2023. |
The journey to 3.0
A quick recap of some of the major milestones leading to this release:
- #2613 - Full initial PyTorch backend implementation
- #2952 - New bottom-up conditional top-down (BUCTD) model architecture
- #2795 - New RTMPose top-down architecture
- #2868 - Updated notebooks and Colab examples for PyTorch workflows
- #2804 - PyTorch model export
And more, find the full PR reference on GitHub!
Credits to @n-poulsen, @jeylau, @maximpavliv, @MMathisLab, @yeshaokai, @LucZot, @AlexEMG, @arashsm79 and many other contributors.
Notable features in 3.0.0
PyTorch-first, TensorFlow-compatible
DeepLabCut 3.0 adds a new PyTorch backend while retaining TensorFlow support for legacy workflows.
Project management remains the same and labeled datasets remain compatible.
PyTorch models can be trained alongside previous TensorFlow models on the same train/test splits for direct benchmarking and comparison.
Expanded architecture support
DeepLabCut 3.0 significantly broadens the supported model ecosystem beyond the classic ResNet-based workflows. The PyTorch stack includes:
- ResNet and HRNet backbones
- Bottom-up multi-animal approaches such as DEKR and PAF/DLCRNet variants
- Top-down detector-plus-pose pipelines including RTMPose
- Hybrid architectures such as BUCTD and CTD variants
- SuperAnimal-related pretrained workflows
The documentation now includes dedicated architecture guides to help users choose models based on scene complexity and experimental needs.
Flexible PyTorch training configuration
The PyTorch engine introduces a modern training stack with expanded augmentation options, training schedules, device management, and model architectures. For each training run, the settings are stored in a pytorch_config.yaml, enabling easy reproducibility.
Improved interoperability
The new PyTorch data pipeline introduces loaders for both standard DeepLabCut projects and COCO-style datasets, making it easier to integrate DeepLabCut with broader computer-vision workflows and external annotation formats.
Model Zoo and SuperAnimal workflows
DeepLabCut 3.0 continues to expand the Model Zoo and SuperAnimal ecosystem, making pretrained models and transfer learning more accessible.
Colab notebooks and updated GUI tooling make it easier to experiment with modern architectures without extensive setup. (see the documentation)
Modernized installation and packaging
The project has been moved to a newer packaging system, and is now based around pyproject.toml. This enables the use of modern package-managers & dependency resolvers, such as uv or pdm.
Users can still install only the components they require, be it GUI support, TensorFlow compatibility, ModelZoo features, and optional experimental integrations.
Labeling GUI
DeepLabCut 3.0 is shipped with a new release of the napari-deeplabcut plugin. Our napari-based labeling GUI has undergone a major internal re-write and modernization: while preserving familiar UI and the DeepLabCut workflow, the update substantially improves stability, data handling, usability, visualization, and annotation workflows, now with automated point tracking for faster labeling. See the release notes to find out about all improvements.
Upcoming: refreshed documentation
We have updated and streamlined the documentation, with a focus on clarity and up-to-date information in core areas (installation, getting started guides, and more).
Expect the documentation to continue evolving soon after the release!
A major transition
The jump from the final DeepLabCut 2.x releases to the current codebase is best understood as a transition to more recent Python & deep learning ecosystems rather than a routine update.
Taken together, the PyTorch backend, broader architecture support, ModelZoo integration, packaging modernization, updated labeling GUI, and documentation improvements represent a major evolution of DeepLabCut, which we are happy to release as 3.0.
Closing thoughts
We hope you enjoy this new version, and we aim to keep sharing many exciting improvements in the future in all areas, be it performance and speed, codebase quality improvements, foundation models integration, user experience and documentation.
Changelog since 3.0.0rc14
- DLC-live-GUI docs : Install from PyPI pre-release (#3238) by @C-Achard
- Apply linting to entire codebase & add CI workflow to check linting (#3216) by @deruyter92
- Bump requests from 2.32.5 to 2.33.0 (#3259) by @app/dependabot
- Refactor Analyze Videos tab (#3268) by @C-Achard
- Consolidate test workflow infrastructure in CI (#3254) by @C-Achard
- Move protobuf requirement to pyproject.toml (#3235) by @C-Achard
- Use pinned ffmpeg version in CI (#3276) by @C-Achard
- Docs versioning: Add glob support, better validation and reporting (#3278) by @C-Achard
- Bump cryptography from 46.0.5 to 46.0.7 (#3277) by @app/dependabot
- Fix failing local Windows tests due to ruamel parsing (#3275) by @C-Achard
- Update & de-duplicate skeleton builder (#3258) by @C-Achard
- Bump pygments from 2.19.2 to 2.20.0 (#3262) by @app/dependabot
- update conda yaml: add pyside6 as conda dependency (#3253) by @deruyter92
- Bump pyasn1 from 0.6.2 to 0.6.3 (#3249) by @app/dependabot
- Fix SuperAnimal / pretrained load for RTMPose: implement convert_weights on RTMCCHead (#3270) by @deruyter92
- Run update check in a separate thread (#3234) by @mikhailmikhalchuk
- Update napari-DLC docs for refactor (#3280) by @C-Achard
- Refactor/predict multianimal (#3220) by @juan-cobos
- Fix incorrect MultiLevel construction in outlier_frames.compute_deviations (#3247) by @C-Achard
- Bump pillow from 12.1.1 to 12.2.0 (#3283) by @app/dependabot
- Bump pytest from 9.0.2 to 9.0.3 (#3284) by @app/dependabot
- CircleCI: disable hugginface xet (#3316) by @deruyter92
- Update and diversify TensorFlow optional installations. (#3292) by @deruyter92
- Bump urllib3 from 2.6.3 to 2.7.0 (#3325) by @app/dependabot
- Bump gitpython from 3.1.47 to 3.1.50 (#3322) by @app/dependabot
- make CTD
GenerativeSamplervisibility-aware (#3305) by @deruyter92 - Add isatty method to StreamWriter + eval GUI fix (#3314) by @yyexela
- Add conditional replacement of
@torch.inference_modefor inference on AMD DirectML GPUs (#3295) by @deruyter92 - Robustness fix: Annotation file not dropping likelihood column if present from machine labels (#3323) by @C-Achard
- Remove trailing comma in models_to_framework.json (#3330) by @C-Achard
- update
list_videos_in_folder(#3303) by @deruyter92 - Improve
TrainingDatasetMetadataandget_shuffle_enginefor incomplete projects (#3313) by @deruyter92 - update RTMPose
SimCCPredictor: exposeapply_softmaxand fix visibility thresholding (#3306) by @deruyter92 - GUI: Add "Generate debug log" action (#3328) by @C-Achard
- [Docker 1] Simplify and modernize Dockerfile (#3290) by @deruyter92
- [Docker 2] Update deeplabcut-docker package (#3291) by @deruyter92
- Add additional drop_likelihood_columns guards (#3333) by @C-Achard
- Resolve inconsistent parameter names via aliasing + depreca...
v3.0.0rc14
Highlights
-
New installation procedure via pyproject.toml : easier, more modern installation. Enables uv, pdm and other modern package managers use.
-
Many fixes and improvements:
- PyTorch speed improvements
- CI improvements
Note: these changes are based on all merges since rc10
What's Changed
- link update for COLAB_YOURDATA_SuperAnimal.ipynb by @MMathisLab in #3037
- RTMpose_x superanimal_humanbody by @MMathisLab in #3043
- skeleton fix fo RTMpose demo by @MMathisLab in #3048
- Update COLAB_HumanPose_with_RTMPose.ipynb by @AlexEMG in #3051
- revert to working RTMPpose demo notebook by @MMathisLab in #3052
- fix for humanbody vs. others by @MMathisLab in #3050
- Save all pytorch config updates in dlc_torch.train_network() by @maximpavliv in #3062
- Save WandB run information to model folder by @maximpavliv in #3017
- Improve
DLCLoader.to_coco()and add force_multi_animal argument todlc_torch.evaluate()by @maximpavliv in #2995 - Superanimal humanbody: Use filtered detector by @maximpavliv in #3066
- ModelZoo GUI Tab fixes by @maximpavliv in #3055
superanimal_humanbodywith FilteredDetector: add video adaptation by @maximpavliv in #3086- Expose
close_figure_after_saveinsuperanimal_analyze_images()by @maximpavliv in #3082 - Fix CTD empty conditions edge case by @maximpavliv in #3076
- Clean
dlc_torch.analyze_videos()by @maximpavliv in #3079 - Fix RTMPose likelihood computation by @maximpavliv in #3078
- Fix typos in documentation and comments by @arashsm79 in #3097
- Fix snapshot index handling in PyTorch
analyze_videosand extend overrides to other methods by @maximpavliv in #3092 - Updating version by @AlexEMG in #3096
- Improve threading termination and queue handling by @maximpavliv in #3094
- Fix
deeplabcut.analyze_images()with CTD model by @maximpavliv in #2990 - Log GPU memory usage by @maximpavliv in #3077
- resize the GUI by @MMathisLab in #3034
- PyTorch: Improve inference batching speed by @arashsm79 in #3099
- Hide GPU memory usage by default by @maximpavliv in #3102
- Add
autocastsub-config to inference settings and disabletorch.autocastby default by @maximpavliv in #3105 - Move
conditions:toinference:block and document inference-related configs by @maximpavliv in #3106 - Update TensorFlow backend for Python 3.12 compatibility (Keras 2 via
tf-keras) by @maximpavliv in #3087 - new version by @AlexEMG in #3109
- Remove trailing underscore in superanimal scorer names by @maximpavliv in #3113
- update Argus documentation notes by @backyardbiomech in #3124
- Fix CI/CD failing on Mac by @arashsm79 in #3128
- PyTorch: Speed up single animal models by @arashsm79 in #3110
- PyTorch: Speed up PAF cost computation by @arashsm79 in #3117
- PyTorch: Speed up DEKR predictor by @arashsm79 in #3121
- Change bug report assignee by @MMathisLab in #3136
- docs: pin jupyter-book version by @arashsm79 in #3139
- Skip multiprocessing pytest by @deruyter92 in #3142
- Add argument max workers for multiprocessing in create_labeled_video by @deruyter92 in #3143
- Remove config editor delegate hack. by @deruyter92 in #3167
- Avoid redundant superanimal colormap calls during pytorch inference by @juan-cobos in #3159
- fix a confusing message for
freeze_bn_statsby @Jiefei-Wang in #3166 - Line 355 output message updated address misleading error message for empty detections in analyze_images() function by @Ronniekev in #3157
- append, instead of rewriting, CSVLogger by @juan-cobos in #3179
- feat: Filter out low-confidence bounding box detections by @deruyter92 in #3154
- add missing init.py to
pose_estimation_tensorflow/modelzoo. by @deruyter92 in #3153 - Fix GitHub Actions disk space exhaustion on Ubuntu runners by @Copilot in #3180
- Reverting PR #3179 which breaks csv logging. by @deruyter92 in #3183
- Update napari plugin activation in launch_napari by @C-Achard in #3181
- Refactor list_videos_in_folder for clarity and correctness by @juan-cobos in #3175
- Restrict pandas dependency to version <3.0 by @deruyter92 in #3186
- hotfix extract_outlier_frames for cropped videos by @deruyter92 in #3169
- fix non-deterministic unintended failing of
test_coarse_dropoutby @deruyter92 in #3182 - fix ruamel.yaml dumping newline for long filenames by @deruyter92 in #3140
- fix broken links in documentation by @deruyter92 in #3145
- Close figures before plotting by @deruyter92 in #3168
- Fix huggingface_hub and filelock dependency issue by @deruyter92 in #3204
- Fix CSVLogger: read existing learning_stats.csv file when resuming previous training by @deruyter92 in #3177
- Fix hardcoded GUI icon path by @deruyter92 in #3200
- Keyword-only
keyargument for pd.DataFrame.to_hdf() by @deruyter92 in #3185 - Replace str, os.path with pathlib.Path by @deruyter92 in #3199
- fix rename_mapping in download_huggingface_model (change arg type str -> dict) by @deruyter92 in #3196
- improve error handling in create_training_dataset by @deruyter92 in #3146
- Update docs TOC and Sphinx excludes by @C-Achard in #3201
- Add fmpose3d functionality by @deruyter92 in #3208
- Fix: properly use
unique_bodypartsandidentity_scoresarguments inShelfWriter.add_predictionby @maximpavliv in #3112 - Handle tables via pip as pandas extra instead of separate conda install (and update installation instructions) by @deruyter92 in #3214
- Update conda env yaml: bump DeepLabCut and remove nb_conda by @deruyter92 in #3213
- Install through pyproject.toml (PEP 518/621) by @deruyter92 in #3184
- Fix redundant/incomplete installs in docs CI, replace with pyproject.toml optional deps by @C-Achard in #3226
- Update CircleCI for pyproject.toml-based install by @C-Achard in #3225
- DeepLabCut-live-GUI PySide6/multicamera documentation ("2.0") by @C-Achard in #3206
- rc14 release by @AlexEMG in #3237
New Contributors
- @arashsm79 made their first contribution in #3097
- @juan-cobos made their first contribution in #3159
- @Jiefei-Wang made their first contribution in #3166
- @Ronniekev made their first contribution in #3157
Full Changelog: v3.0.0rc10...v3.0.0rc14
v3.0.0rc10
What's Changed
- Fix PySide6 AttributeError and uninitialized variable by @jeylau in #2622
- Niels/pcutoff arg by @n-poulsen in #2630
- Fix video overwrite by @jeylau in #2633
- Visually signal end of super animal video inference by @jeylau in #2637
- Fix GUI bugs by @jeylau in #2649
- Fix OSError: Could not find a backend to open
CollectedData_Alex.csvwith iomoderby @jeylau in #2650 - Fix video extension filter in filterpredictions by @jeylau in #2673
- Fix and decouple video rotation from other operations by @jeylau in #2653
- merge named snapshot evaluation into pytorch_dlc by @n-poulsen in #2657
- Handle internet connectivity issues by @jeylau in #2672
- New PyTorch DeepLabCut SuperAnimal demo notebook by @yeshaokai in #2629
- merge main to
pytorch_dlcby @n-poulsen in #2677 - Update train.py: avoids error on 'unique_bodyparts' by @Zelin2001 in #2668
- Default PAF config update by @n-poulsen in #2678
- New detector options and better detector integration by @n-poulsen in #2676
- backwards compatibility by @n-poulsen in #2681
- evaluation refactor by @n-poulsen in #2679
- bug fixes for analyze_videos and unique_bodyparts by @Zelin2001 in #2685
- Fix import in deeplabcut.pose_tracking_pytorch by @jeylau in #2691
- Location Refinement for Top-Down models by @n-poulsen in #2699
- Identity Predictor by @n-poulsen in #2707
- batched inference by @n-poulsen in #2708
- Bug fixes:
find_closest_neighbors+ ellipse tracking by @n-poulsen in #2709 - bug fix: find closest neighbors by @n-poulsen in #2717
- Minimal backward compatibility by @AlexEMG in #2713
- Documentation Improvements - DeepLabCut PyTorch Code by @AlexEMG in #2714
- merge
mainintopytorch_dlcby @n-poulsen in #2731 - Make 3D Triangulate possible with pytorch_dlc branch and MA project by @Zelin2001 in #2729
- Data compatibility - Benchmark by @n-poulsen in #2740
- Adding cropping to pose_estimation_pytorch/apis/analyze_videos.py by @YankoFelipe in #2737
- pytorch_dlc - Small updates and bug fixes by @n-poulsen in #2747
- calc_similarity_with .py ZeroDivisionError: float division by zeros via upload by @SowonKIMM in #2688
- update version by @AlexEMG in #2748
- SuperAnimal Model Updates by @n-poulsen in #2756
- Look for uppercase video extensions when creating projects by @n-poulsen in #2763
- Fix reading gpus config by @maximpavliv in #2764
- Git ignore IDE configs by @maximpavliv in #2765
- Fix bug introduced in PR #2764 by @maximpavliv in #2772
- Bug fix:
create_video_with_all_detectionsfails with PAF heads by @n-poulsen in #2776 - Resume training from existing snapshots option in GUI by @maximpavliv in #2774
- Improvements to the training UX by @n-poulsen in #2775
- Fix failing DLC 3.0 tests - changes to internal implementation by @n-poulsen in #2778
- Merge changes made to
mainby @n-poulsen in #2779 - Fix:
gui/tabs/train_network.py, AttributeError: ‘NoneType’ object has no attribute ‘lower’by @n-poulsen in #2780 - Use architecture-specific snapshots prefixes in video adaptation by @maximpavliv in #2781
- Video Analysis with Identity - Lowering memory footprint by @n-poulsen in #2785
- Timeout retrieving latest package version from the Web by @maximpavliv in #2782
- Load scheduler state when resuming training by @n-poulsen in #2788
- DeepLabCut 3.0 - Video Analysis with
use_shelve=Trueby @n-poulsen in #2790 - Fix: correct the early return error when save_epochs=1 and optimize the clean up way by @xiu-cs in #2793
- Fix: Video Analysis for Single Animal projects by @n-poulsen in #2798
- Model Output Visualization for PyTorch Models by @n-poulsen in #2799
- Add Functions for Visualizing COCO Predictions and Ground Truth by @xiu-cs in #2792
- DLC 3.0 - Function to export PyTorch models by @n-poulsen in #2800
KeypointAwareCrop: uniform sampling when no keypoints are present by @n-poulsen in #2801- Fix version check timeout by @maximpavliv in #2805
- Revert "Fix version check timeout" by @n-poulsen in #2807
- PyTorch model evaluation -
per_keypoint_evaluationandcomparisonbodypartsby @n-poulsen in #2810 - Prune PAF graphs before evaluation by @n-poulsen in #2813
- Plot detector's bboxes if Top-Down architecture by @maximpavliv in #2791
superanimal_analyze_images: improve plotting functions by @n-poulsen in #2815- Update
superanimal_analyze_imagesplotting by @n-poulsen in #2817 - Set
weights_only=Trueas a default when loading snapshot weights. by @n-poulsen in #2818 - Implement missing arguments for PyTorch models by @n-poulsen in #2816
- Add missing positional arguments to SuperAnimal Colab by @maximpavliv in #2819
- New Top-Down Pose Estimation Model - RTMPose by @n-poulsen in #2795
- SuperAnimal demo colab update (for DLC3) by @MMathisLab in #2814
- Improved loading of snapshot weights with
torch.load(..., weights_only=True)by @MMathisLab in #2823 create_labeled_videofails with single animal TensorFlow models by @n-poulsen in #2826- Merges
mainintopytorch_dlcby @n-poulsen in #2828 - Restore "Build skeleton" button by @maximpavliv in #2831
- Improve
deeplabcut.pose_estimation_pytorchimports by @n-poulsen in #2833 - Improve train_network() docstring by @maximpavliv in #2836
get_detector_inference_runner: resolve the device from the model config when None by @nattse in #2841- Update docs video_inference_superanimal() by @maximpavliv in #2848
- Fix - setting cropping parameters in
analyze_videosfor PyTorch models by @n-poulsen in #2849 - Improvements to default configs by @n-poulsen in #2860
- Dynamic update of pytorch config with dot notation by @maximpavliv in #2859
- fix broken
train_networkargumentdisplay_itersin the GUI by @n-poulsen in #2865 - ReID Tracking dataset creation for PyTorch models by @n-poulsen in #2861
- Merges
mainintopytorch_dlcby @maximpavliv in #2876 - fix evaluation for ma models, following change in 'deeplabcut/core/metrics/api.py' by @Zelin2001 in #2872
- Fix check version timeout Version 2 (compatible with Windows and MacOS) by @maximpavliv in #2820
- fix entrypoint for dlc by @hmaarrfk in #2863
- Fix entrypoint - Requested changes by @maxi...
v2.3.11 🐛 fixes, package maintenance (TF only)
What's Changed
- Update beginners-guide.md by @MMathisLab in #2619
- Update DEEPLABCUT.yaml by @EitanHemed in #2625
- Add feature to evaluate network for specfic, named snapshots. by @Tetra-quark in #2508
- fixed file dialog not showing uppercase file extension video files by @park-jsdev in #2645
- Swap button added to the track refinement GUI by @JulianAlvarezdeGiorgi in #2680
- Fixes for testscript_3d.py by @jesse-gilmer in #2443
- Allow processing of videos in MKV containers by @ximion in #2701
- add in CZI EOSS badge and funding section by @MMathisLab in #2735
- Fix minimalnumberofconnections by @segashin in #2718
- Benchmarking user guide by @dikraMasrour in #2716
- adding docs for using data labeled elsewhere (formatting) by @MMathisLab in #2736
- Update standardDeepLabCut_UserGuide.md by @bendichter in #2761
- Create citation.md by @MMathisLab in #2767
- Fix failing tests -
tmpdir_factorydir creation on OSX by @n-poulsen in #2768 - Update DLC3 PyTorch docs by @n-poulsen in #2804
- Pins
numpy<2, fix svd forscipy>=1.11.0by @n-poulsen in #2827 - Fix reading filtered state by @maximpavliv in #2844
- Remove pickle5 dependency from madlc Colab by @maximpavliv in #2846
- Fixed
dropimagesduetolackofannotationto work with single-animal data by @n-poulsen in #2850 - Fixed conversion of dict to list for proper future indexing by @m-beau in #2855
- fixes to label_frames, addition of docstring by @n-poulsen in #2858
- Pin TensorFlow according to OS; Fix DeepLabCut install in Colab to deal with new requirements. by @n-poulsen in #2862
- Remove unused GUI button in analyze videos tab by @maximpavliv in #2875
- Fix video addition in VideoSelectionWidget by @maximpavliv in #2878
- v2.3.11 by @AlexEMG in #2882
- improved handling of animal names when analyzing videos by @n-poulsen in #2884
New Contributors
- @park-jsdev made their first contribution in #2645
- @JulianAlvarezdeGiorgi made their first contribution in #2680
- @jesse-gilmer made their first contribution in #2443
- @ximion made their first contribution in #2701
- @segashin made their first contribution in #2718
- @dikraMasrour made their first contribution in #2716
- @bendichter made their first contribution in #2761
- @m-beau made their first contribution in #2855
@maximpavliv joined the software team!
Funding includes ChanZuckerberg Initiative's Essential Open Source Software for Science. Thanks!
Full Changelog: v2.3.10...v2.3.11
v2.3.10
What's Changed
- Doc re-arrangement in the TOC by @MMathisLab in #2523
- slight change to setup (move all TF to TF tag; pin tables, add note that python 3.9 is currently required by @MMathisLab in #2517
- Use video crop coordinates appropriately in create_video_with_all_detections by @jeylau in #2524
- Avoid infinite loop in
mine()when there are no overlapping tracklets by @jeylau in #2525 - fix manual frame extraction with symlinks by @n-poulsen in #2527
- Update COLAB_DLC_ModelZoo.ipynb by @MMathisLab in #2533
- Adding a Quick Guide (from the wiki to the docs!) by @MMathisLab in #2532
- quick file fix by @MMathisLab in #2534
- Update installTips.md by @MMathisLab in #2536
- Video analysis on cropped videos: bug fixes for
extract_outlier_framesandcreate_video_with_all_detectionsby @n-poulsen in #2538 - MacOS CI Fix - FFMpeg Installation by @n-poulsen in #2559
- niels/check_for_duplicate_videos by @n-poulsen in #2558
- Update setup.py by @MMathisLab in #2526
- bug fix: missing images during evaluation by @n-poulsen in #2570
- Update label and warn users of the absence of videos by @jeylau in #2586
- pin matplotlib version by @n-poulsen in #2583
- Correct DEEPLABCUT.yaml and DEEPLABCUT_M1.yaml reference. by @midumitrescu in #2573
- minor spelling fixes by @MMathisLab in #2594
- Fix 2d line data setter by @jeylau in #2599
- Auto check for dlclibrary & napari-deeplabcut updates when the GUI opens by @jeylau in #2600
- Update README.md by @MMathisLab in #2601
- Release by @AlexEMG in #2602
New Contributors
- @midumitrescu made their first contribution in #2573
Full Changelog: v2.3.9...v2.9.10
Updates and bug fixes
What's Changed
- Pull demo data from Zenodo by @jeylau in #2440
- Update maDLC_UserGuide.md by @Timokleia in #2446
- Fix bug dataset and metadataset fixes #2390 by @Tetra-quark in #2405
- Bug fix:
add_new_videos(..., extract_frames=True)by @n-poulsen in #2468 - bug fix: empty predictions during video analysis by @n-poulsen in #2467
- Update README.md by @MMathisLab in #2464
- Update AUTHORS by @MMathisLab in #2475
- updated macOS runner to 13 by @n-poulsen in #2484
- Update README.md by @Timokleia in #2496
- Bump version of
tablesinstalled during CI by @jeylau in #2500 - updated COLAB notebooks to install a CUDA version compatible with DLC by @n-poulsen in #2506
- updated package requirements by @n-poulsen in #2513
- Test for the presence of snapshot files when using modelzoo by @jeylau in #2485
- Version update by @AlexEMG in #2514
Full Changelog: v2.3.8...v2.3.9
Expanded GUI features for the DLC ModelZoo
What's Changed
- better augmentation for maDLC: Fix fliplr augmentation for multi animal 2 by @biol-jsh in #2043
- Improved transfer learning for DLC ModelZoo by @yeshaokai in #2389
- Improvements to the model zoo's GUI tab by @jeylau in #2431
- "deeplabcut.filterpredictions" and "deeplabcut.analyze_skeleton" return mappings by @rahulporuri in #1908
- Let user change the search window size during corner detection refinement by @jeylau in #2414
- Install DLC from PyPI rather than its local version in M1 Macs by @jeylau in #2416
- Correct link to platform specifications page by @molecules in #2423
- Automatically check for napari-deeplabcut updates (in addition to DLC) by @jeylau in #2422
- Smartly restore pretrained model weights by @jeylau in #2426
- Fix video adaptation by @jeylau in #2436
New Contributors
- @molecules made their first contribution in #2423
Funding includes ChanZuckerberg Initiative's Essential Open Source Software for Science. Thanks!
Full Changelog: v2.3.7...v2.3.8
Minor fixes
What's Changed
- update the lr when switching to adam optimizer by @n-poulsen in #2393
- Update maDLC_UserGuide.md by @Timokleia in #2394
- Fix
testscript.pyexecution: setmax_iterswhen training network by @n-poulsen in #2395 - Update python-package.yml by @MMathisLab in #2401
- Bump python to 3.9 in DEEPLABCUT.yaml environment file by @jeylau in #2402
- Address underlying compatibility issue with scipy 1.11.0 by @hmaarrfk in #2396
- Update standardDeepLabCut_UserGuide.md by @MMathisLab in #2403
- Unifying docs on Napari DeepLabCut by @Timokleia in #2399
- Update publish-book.yml by @MMathisLab in #2404
- Napari Flowchart by @Timokleia in #2406
- Minor modifications to deploy_book github action by @jeylau in #2407
- Update URL of napari shortcuts SVG by @jeylau in #2408
- update notebooks and COLAB by @n-poulsen in #2411
- GUI - Fix config YAML edition (start list indexing at 0) by @n-poulsen in #2412
- Fix link typos and conversion by @AlexEMG in #2409
- Update version by @AlexEMG in #2413
Full Changelog: v2.3.6...v2.3.7
Funding includes ChanZuckerberg Initiative's Essential Open Source Software for Science. Thanks!
Bug fixes and minor updates
What's Changed
- Fix deprecated numpy builtin type by @jeylau in #2270
- Fix display bodyparts by @KonradDanielewski in #2264
- fix drawing of skeleton when displayedbodyparts != all by @KonradDanielewski in #2274
- stitch_tracklets crashes when not enough tracks are found by @n-poulsen in #2273
- Pass train/test indices to create_multianimaltraining_dataset by @jeylau in #2272
- renamed attempttomakefolder to attempt_to_make_folder by @rizarae-p in #2271
- pin scipy to less than 1.11.0 by @n-poulsen in #2290
- Fixed draw_bbox when pyplot is in non-interactive mode by @n-poulsen in #2288
- Bug fix spatiotemporal adaptation kwargs by @n-poulsen in #2291
- Update README.md by @MMathisLab in #2294
- Avoid creating training dataset with multiple scorers by @KonradDanielewski in #2287
- handles empty frame in video adaptation by @yeshaokai in #2258
- Update DEEPLABCUT.yaml by @MMathisLab in #2299
- pinned tensorflow to <2.13.0 by @n-poulsen in #2308
- Manual outlier_frame_extraction bugfix by @n-poulsen in #2307
- Fix windows video selection for extraction in the GUI by @KonradDanielewski in #2286
- Add function to get per-bodypart RMSE by @n-poulsen in #2315
- Plot keypoint confidence as alpha value by @n-poulsen in #2319
- Some usability improvements to the main GUI by @jeylau in #2275
- fix broken gputouse by @ludovicbellier in #2320
- Avoid assembling if already done and overwrite == False by @KonradDanielewski in #2317
- Pose_cfg.yaml recipe by @KonradDanielewski in #2331
- Add link to hyperparams/augmentation guide by @KonradDanielewski in #2333
- Update DEEPLABCUT.yaml by @MMathisLab in #2325
- bug fix: assemblies filename print by @n-poulsen in #2346
- Fixed
analyze_videosdocstring by @n-poulsen in #2354 - ortholonal -> orthogonal by @yowayb in #2368
- Do not unpickle unit test data with pandas by @jeylau in #2373
- Updated deeplabcut installation in colab notebooks by @n-poulsen in #2376
- Added a new recipe on how to publish new recipes by @rizarae-p in #2334
- Remove unused parameter
num_shufflesfromcheck_for_weightsfunction. by @Tetra-quark in #2360 - Update installation.md by @MMathisLab in #2378
- Update installation.md by @MMathisLab in #2379
- updated Model Zoo Colab notebook by @MMathisLab in #2381
- Doc clean up by @MMathisLab in #2380
- Clean up Model Zoo superanimal notebook by @MMathisLab in #2382
- Fix
interpkwarg inimresizefunction. by @Tetra-quark in #2374 - Add build matrix for docker images, update images by @stes in #1936
- Update UseOverviewGuide and docker guide by @MMathisLab in #2384
- Update README.md by @MMathisLab in #2385
- Bug fixes VideoWriter: video names with spaces by @n-poulsen in #2388
- Branch for new version by @AlexEMG in #2392
New Contributors
- @rizarae-p made their first contribution in #2271
- @yowayb made their first contribution in #2368
- @Tetra-quark made their first contribution in #2360
Full Changelog: v2.3.5...v2.3.6
v2.3.5
What's Changed
- Fetch mice demo data from Zenodo by @jeylau in #2223
- Changing except Error type to match no files found by @nattse in #2226
- Fix randomly failing multi-animal test script by @jeylau in #2233
- Fix rectangle selector by @n-poulsen in #2227
- Moved sections from H3 to H2 by @aoot in #2231
- removed deprecated install tips for mac m1/m2 by @n-poulsen in #2234
- Fix docstring in video_inference_superanimal by @stes in #2236
- 4 additional unit-tests by @AlexEMG in #2239
- Update URL for deeplabcut-docker by @stes in #2249
- Update bug_report.yml by @MMathisLab in #2250
- Allow frame extraction on a video subset in GUI by @jeylau in #2238
- Basicformatting by @AlexEMG in #2241
- Explicitely use QRegularExpression instead of implicit string conversion by @hmaarrfk in #2244
- Use QFrame.Shape.StyledPanel instead of QFrame.StyledPanel by @hmaarrfk in #2243
- Update use of .Directory for PySide6.5.0 by @hmaarrfk in #2247
- Additions to modelzoo APIs by @yeshaokai in #2198
- Update setup.py, docs by @MMathisLab in #2255
- version update by @AlexEMG in #2257
New Contributors
- @nattse made their first contribution in #2226
- @n-poulsen made their first contribution in #2227
- @aoot made their first contribution in #2231
Funding includes ChanZuckerberg Initiative's Essential Open Source Software for Science. Thanks!
Full Changelog: v2.3.4...v2.3.5




