pypi ultralytics 8.4.17
v8.4.17 - `ultralytics 8.4.17` NDJSON dataset re-split support (#23735)

11 hours ago

🌟 Summary (single-line synopsis)

Ultralytics v8.4.17 makes NDJSON dataset conversions resplit-friendly—reusing existing images, cleaning stale labels, and avoiding unnecessary downloads for faster iteration 🚀📦

📊 Key Changes

  • NDJSON dataset re-split support (priority change) ♻️🧹
    • Detects when the dataset output folder already exists and reuses previously downloaded images when you change train/val/test splits.
    • For non-classification tasks (detect/segment/pose), removes the existing labels/ directory before reconversion to prevent stale annotations.
    • If an image is missing from the current split, it will move (rename) it from another split (train/val/test) before downloading from the URL.
    • Adds a content hash (ignoring signed/rotating URLs) stored in data.yaml to skip reconversion when nothing meaningful changed 🧾🔒
    • Deletes orphaned images that are no longer part of the dataset after a resplit, reducing “stale background files” that can silently affect training 🗑️
  • More reliable EdgeTPU exports 🧩⚙️
    • Automatically disables end2end mode for EdgeTPU exports (and logs a warning), aligning EdgeTPU with other limited backends that don’t support required ops.
  • OpenVINO INT8 export dependency handling improved 📦✅
    • Adds PyTorch 2.3 detection and adjusts nncf requirements to reduce install/export conflicts across Torch versions.
  • Clearer disk space error messages 💾🔎
    • Fixes incorrect “GB” reporting and now shows MB for sizes under 1GB, making download/asset errors easier to understand.

🎯 Purpose & Impact

  • Faster dataset iteration for NDJSON workflows
    Resplitting a dataset no longer forces full re-downloads—saving time, bandwidth, and friction when you’re refining splits during curation.
  • Fewer training gotchas from stale files 🧼
    Clearing old labels and removing orphaned images helps prevent subtle mismatches (images/labels out of sync) that can degrade training quality.
  • More dependable deployment exports 📤
    EdgeTPU exports should fail less often due to unsupported end2end behavior, and OpenVINO INT8 export setups are smoother across PyTorch versions.
  • Better user experience when storage is low 🧰
    Disk space errors now communicate real numbers, reducing confusion during downloads and conversions.

What's Changed

Full Changelog: v8.4.16...v8.4.17

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.