Ultralytics v8.4.17 is out!
Ultralytics v8.4.17 makes NDJSON dataset conversions resplit-friendly—reusing existing images, cleaning stale labels, and skipping unnecessary downloads so you can iterate on train/val/test splits much faster ![]()
![]()
If you’re working with Ultralytics YOLO datasets (especially NDJSON workflows), this release is all about speed, correctness, and fewer “stale file” gotchas.
Highlights

NDJSON dataset re-split support (priority change)
This update dramatically improves iteration when you change dataset splits:
- Reuses previously downloaded images if the output dataset folder already exists

- For non-classification tasks (detect/segment/pose), clears the existing
labels/directory before reconversion to prevent stale annotations
- If an image is missing in the current split, it will move (rename) it from another split before attempting a URL download

- Adds a content hash (ignoring signed/rotating URLs) stored in
data.yamlto skip reconversion when nothing meaningful changed

- Deletes orphaned images that are no longer part of the dataset after a resplit, reducing silent training noise

Export & Deployment Improvements

More reliable EdgeTPU exports
- Automatically disables
end2endmode for EdgeTPU exports (and logs a warning), aligning behavior with other limited backends that don’t support required ops.

OpenVINO INT8 export dependency handling improved
- Adds PyTorch 2.3 detection and adjusts
nncfrequirements to reduce install/export conflicts across Torch versions.
Quality-of-Life Fixes

Clearer disk space error messages
- Fixes incorrect “GB” reporting and now shows MB for sizes under 1GB, making download/asset errors much easier to interpret.
What’s Changed (PRs)
Thanks to the contributors and reviewers making these releases better for everyone:
- Fix incorrect disk space in error message by @Y-T-G in PR #23727
- Pin
nncf<3for PyTorch 2.2 and below by @Y-T-G in PR #23726 - Disable
end2endfor EdgeTPU by @Y-T-G in PR #23724 ultralytics 8.4.17NDJSON dataset re-split support by @glenn-jocher in PR #23735
How to Update
pip install -U ultralytics
Release Notes
You can review the full release details in the official Ultralytics v8.4.17 GitHub release, or browse the full changelog comparing v8.4.16 → v8.4.17 inline as you read commits.
Feedback Wanted
If you’re using NDJSON conversions, EdgeTPU, or OpenVINO INT8 exports—please try v8.4.17 and share:
- what improved,
- what’s still rough,
- and any edge cases you hit.
Your reports help us keep Ultralytics YOLO—and the wider YOLO community—moving fast ![]()