pypi ultralytics 8.4.130
v8.4.130 - Enable fraction to limit dataset by image counts (#25951)

2 hours ago

🌟 Summary

Version v8.4.130 makes dataset subset selection far more flexible and efficient, while improving tuning, tracking guidance, and dataset metadata. 🚀

📊 Key Changes

  • Count-based dataset limits 🎯

    • fraction now accepts a positive image count, such as fraction=1000, to train on exactly 1,000 images.
    • Use fraction=[1000, 100] to limit the training and validation splits independently.
    • Existing decimal ratio behavior remains unchanged, so fraction=0.1 still uses 10% of the dataset.
    • Integer 1 means one image, while float 1.0 means the complete split.
    • Supports YOLO, RTDETR, classification, validation, and INT8 calibration workflows.
  • More efficient NDJSON and Platform dataset downloads

    • Count-based subsets are selected before images are downloaded.
    • NDJSON records are selected deterministically, helping repeated runs use the same images.
    • This avoids downloading an entire dataset when only a fixed-size subset is needed.
  • Improved hyperparameter tuning 🧠

    • Model.tune() now defaults to AdamW unless another optimizer is explicitly selected.
    • This ensures tuning parameters such as learning rate and momentum actually affect training instead of being ignored by automatic optimizer selection.
    • MongoDB-based tuning now uses safer atomic coordination, preventing multiple workers from incorrectly claiming the default configuration.
  • Clearer tuning fitness plots 📈

    • tune_fitness.png now shows overall fitness progression, the best result achieved so far, and initial-versus-best fitness for each dataset.
    • The new layout is easier to interpret, especially for multi-dataset tuning runs.
  • Expanded and clarified tracking documentation 🎥

    • Documentation now lists six built-in trackers: TrackTrack, BoT-SORT, ByteTrack, OC-SORT, Deep OC-SORT, and FastTracker.
    • TrackTrack is documented as the default tracker, with optional ReID and camera-motion compensation.
    • Tracking guidance now more clearly explains confidence thresholds, low-confidence recovery, custom ReID models, and task-specific behavior for segmentation, pose, and OBB models.
    • Tracker-specific training is clarified: users train a detection, segmentation, pose, or OBB model, then apply tracking during inference.
  • More complete dataset license metadata 📚

    • Added or corrected license information for MNIST, Global Wheat2020, PASCAL VOC, KITTI, and official depth datasets.
    • Depth8 and SUN RGB-D are now explicitly marked as having no specified source license where applicable.
    • Export documentation across ONNX, TensorRT, OpenVINO, LiteRT, Hailo, QNN, Rockchip, and other formats now reflects the expanded fraction behavior.

🎯 Purpose & Impact

  • Faster experimentation: Quickly train or calibrate on a known number of images without creating duplicate dataset copies.
  • Lower storage and bandwidth usage: Platform NDJSON datasets no longer need to download every image before applying a count-based limit.
  • More reliable tuning: AdamW makes the default tuning search spaces effective, while MongoDB coordination avoids duplicate baseline trials in concurrent runs.
  • Better reproducibility: Deterministic NDJSON subset selection makes repeated experiments more consistent.
  • Improved deployment workflows: Fixed-size calibration subsets are now easier to use across supported export formats, helping reduce INT8 calibration time.
  • Clearer tracking decisions: Users can more easily choose a tracker and understand the trade-offs between speed, ReID, camera-motion compensation, and occlusion handling.
  • No major model architecture changes: This release primarily improves data handling, tuning reliability, tracking usability, and documentation rather than introducing a new model family.

What's Changed

Full Changelog: v8.4.129...v8.4.130

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.