pypi ultralytics 8.4.129
v8.4.129 - Delegate multi-dataset tuning to MultiTrainer (#25937)

4 hours ago

🌟 Summary

v8.4.129 improves multi-dataset hyperparameter tuning, training precision, model export acceleration, data loading, and platform reliability—without introducing a new model architecture. 🚀

📊 Key Changes

  • Multi-dataset tuning is now managed by MultiTrainer (PR #25937, @glenn-jocher):

    • Removes duplicated dataset orchestration from the tuner.
    • Runs each dataset training job in an isolated YOLO CLI subprocess.
    • Preserves YOLOWorld and YOLOE checkpoint filename handling.
    • Records individual dataset metrics, macro-mean metrics, and cleanup paths.
    • Improves distributed MongoDB tuning by safely assigning defaults and identifying winning runs by their result paths instead of worker-local indexes.
    • Validated with single-dataset and five-dataset MongoDB tuning runs. ✅
  • Added BF16 mixed-precision training (PR #25931, @artest08):

    • amp now accepts True, False, "fp16", "bf16", and "fp32".
    • BF16 uses less memory than FP32 while offering greater numerical range than FP16.
    • Gradient scaling is correctly disabled for BF16.
    • Supported CUDA hardware is required for native BF16 training.
  • Improved YOLO26 LiteRT exports for GPU delegates (PR #25914, @Y-T-G):

    • Reworked detection-head indexing and gathering to use operations better supported by GPU accelerators.
    • Helps keep more of the end-to-end, NMS-free detection head on the GPU instead of falling back to the CPU.
    • Also centralizes export-specific behavior outside the main detection head implementation.
  • Faster image and FastSAM preprocessing (PRs #25935 and #25938, @JESUSROYETH):

    • Large batches of regular images can now be decoded in parallel while preserving input order.
    • FastSAM CLIP crop preprocessing is parallelized for sufficiently large CUDA workloads.
    • Small batches, unsupported image formats, CPU, and MPS paths retain the safer serial behavior.
  • More consistent ONNX CPU benchmarking (PR #23924, @Laughing-q):

    • ONNX profiling now uses the shared ONNXBackend.
    • Adds configurable ONNX Runtime session options and multi-input model support.
    • Benchmarks now follow the same backend execution path used during inference.
  • Stronger export and validation coverage:

    • TensorRT tests now validate exported engines on task-specific datasets, not only through inference.
    • CoreML and LiteRT export helpers are documented in the API reference.
    • Detection postprocessing is shared across Detect, Segment, Pose, OBB, and related heads.
  • Improved Windows image compatibility (PR #21070, @Laughing-q):

    • Added imread_unicode for image paths containing non-ASCII characters.
    • Preserves native OpenCV grayscale behavior and simplifies semantic-mask handling.
  • More reliable progress reporting for Ultralytics Platform (PR #25905, @Y-T-G):

    • Progress-bar redraws are now transmitted as live state rather than ordinary log lines.
    • Reduces duplicated or cluttered logs and gives consumers a cleaner progress contract.
  • Documentation and training guidance corrections:

    • Clarifies YOLO26’s DFL-free l1_loss, pretrained-weight behavior, AutoBatch rules, AMP behavior, freezing, fine-tuning, K-Fold workflows, model YAML construction, and tuning output paths.
    • Adds guidance for class-name-based head weight remapping during fine-tuning.
    • Documents BF16 settings and supported distillation task limitations.
  • Build reliability improvements for Jetson (PR #25930, @glenn-jocher):

    • Disk cleanup is skipped for JetPack Docker builds so native Jetson builds retain sufficient runner swap space.

🎯 Purpose & Impact

  • More dependable distributed tuning: Multi-dataset experiments are now simpler to maintain, better isolated, and easier to analyze because results and output paths are tracked per dataset. MongoDB workers are also less likely to race when initializing defaults. 📈

  • More training options: Users with compatible CUDA hardware can choose BF16 for a practical balance of speed, memory use, and numerical stability. Existing FP16 and FP32 behavior remains available.

  • Faster edge deployment: LiteRT exports of YOLO26 end-to-end models should make better use of WebGPU and other GPU delegates, reducing unnecessary CPU fallback and potentially improving inference latency. ⚡

  • Better throughput for large workloads: Parallel image decoding and FastSAM preprocessing can reduce time spent waiting for CPU preprocessing, especially with large batches or many candidate crops.

  • Improved compatibility and confidence: Non-ASCII Windows paths, multi-input ONNX models, TensorRT validation, and distillation checkpoint handling receive targeted fixes that reduce failures in real-world workflows.

  • Cleaner integrations: Platform and other log consumers can process progress updates directly instead of guessing which log lines represent progress bars.

  • Release status: The package version is updated to 8.4.129.

What's Changed

Full Changelog: v8.4.128...v8.4.129

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.