|
| 1 | +# DeepLabCut 3.0.3 |
| 2 | + |
| 3 | +DeepLabCut 3.0.3 is a patch release with better handling of undetected poses along inference and security-related dependency bumps, as well as adding more flexibility to PyTorch data loading. |
| 4 | + |
| 5 | +## Highlights |
| 6 | + |
| 7 | +- New `dataloader_kwargs` in `train_settings` to configure the PyTorch `DataLoader` (#3550, #3576). |
| 8 | +- Top-down inference no longer skips frames without detections; warn about unreadable videos (#3488). |
| 9 | +- Fix wrong multi-animal tracking when an ellipse fit fails on one animal (#3544). |
| 10 | +- Fix wrong starting frame in k-means frame extraction for consecutive indices (#3531). |
| 11 | +- Fix GUI freeze when showing trajectory plots in Analyze Videos (#3466). |
| 12 | + |
| 13 | +## Important changes |
| 14 | + |
| 15 | +### Train settings: `dataloader_kwargs` (#3550, #3576) |
| 16 | + |
| 17 | +`TrainSettingsConfig` now has a `dataloader_kwargs` field for forwarding additional parameters to the PyTorch DataLoader (e.g. `persistent_workers`, `prefetch_factor`). |
| 18 | +Please see [related documentation](https://github.com/DeepLabCut/DeepLabCut/blob/main/docs/pytorch/pytorch_config.md#train-settings). |
| 19 | + |
| 20 | +> [!NOTE] |
| 21 | +> `pytorch_config.yaml` only contains `dataloader_kwargs` when set manually. Configurations that leave it unset can still be used in <=3.0.2; configurations that did set it cannot, unless the field is removed. |
| 22 | +
|
| 23 | +## Features and enhancements |
| 24 | + |
| 25 | +- #3550, #3576 — Expose PyTorch `DataLoader` arguments in `TrainSettingsConfig`; omit the field from saved configs when unset. |
| 26 | +- #3551 — Update `AGENTS.md` for AI-contribution requirements. |
| 27 | +- #3530, #3533 — Update napari documentation. |
| 28 | +- #3398 — Add a Cookbook recipe on fish swimming kinematics (community contribution). |
| 29 | + |
| 30 | +## Bug fixes and tests |
| 31 | + |
| 32 | +- #3544 — Fix wrong multi-animal tracking in `SORTEllipse.track` on unfitted ellipses. |
| 33 | +- #3488 — Fix skipped zero detection frames in async top-down inference and manage unreadable videos. |
| 34 | +- #3466 — Fix GUI freeze when showing trajectory plots in Analyze Videos; plots are now shown after the run. |
| 35 | +- #3557 — Fix missing `load_scheduler_state_dict` field in `RunnerConfig`. |
| 36 | +- #3535 — Fix GUI uv package upgrades. |
| 37 | +- #3531 — Fix wrong starting frame read in `KmeansbasedFrameselectioncv2` for consecutive indices. |
| 38 | +- #3520 — Fix test IDs drift between pytest discovery and runs. |
| 39 | +- #3564, #3565 — Fix `_meta.pickle` portability across OSes. |
| 40 | +- #3526, #3527 — Add version-aware known-defect tests for `labeled-data` enumeration. |
| 41 | + |
| 42 | +## Dependencies and security |
| 43 | + |
| 44 | +- [emSign/eMudhra CA incident](https://discuss.python.org/t/information-for-python-users-regarding-emudhra-emsign-ca-certificate-security-incident/109576): |
| 45 | + * #3560 — Bump uv 0.10.10 → 0.13.4 and certifi 2026.4.22 → 2026.10.19. |
| 46 | + * #3561 — Update the Dockerfile accordingly and to upgrade ca-certificates. |
| 47 | +- #3576 — Require pydantic >=2.12 (previously >=2); lockfile: pydantic 2.13.4 → 2.14.2, pydantic-core 2.46.4 → 2.50.2, typing-extensions 4.15.0 → 4.16.0, typing-inspection 0.4.2 → 0.4.4. |
| 48 | +- #3542 — Bump gitpython 3.1.59 → 3.1.62. |
| 49 | +- #3540 — Bump tornado 6.5.8 → 6.5.9. |
| 50 | +- #3523 — Bump anyio 4.13.0 → 4.14.2. |
| 51 | +- #3522 — Bump soupsieve 2.8.4 → 2.9. |
| 52 | +- #3541 — Bump urllib3 2.7.0 → 2.8.0. |
| 53 | +- #3552 — Bump werkzeug 3.1.8 → 3.1.9. |
| 54 | +- #3563 — Bump pillow 12.2.0 → 12.3.0. |
| 55 | + |
| 56 | +## Code removal |
| 57 | + |
| 58 | +- #3431 — Remove the empty benchmark module of `pose_estimation_pytorch`. |
| 59 | +- #3543 — Remove unused `adapt_labeled_data_to_new_project` from `utils.conversioncode`. |
| 60 | + |
| 61 | + |
| 62 | + |
| 63 | +Please let us know if you face any issues with this release, we appreciate any issues or reports! |
0 commit comments