ultralytics v8.4.133

v8.4.133

v8.4.133 - Improve hyperparameter Tuner mutation convergence (#25984)

Added 2
  • Enable channels-last memory layout automatically for native PyTorch inference and standalone validation on supported x86 Linux and Windows CPUs with oneDNN
  • Custom detection datasets can now report small-, medium-, and large-object mAP when using save_json=True
Changed 8
  • Replace coordinate-by-coordinate crossover with fitness-weighted selection of complete, high-performing configurations in hyperparameter tuning
  • Mutate approximately half of the parameters in normalized search-space coordinates to allow parameters starting at zero to evolve more effectively
  • Gradually reduce mutation size when tuning stops finding better results to encourage refinement after broad exploration
  • Set Ray Tune to default to Optuna multivariate TPE with parallel-aware suggestions instead of independent random search
  • Move image channel reordering and tensor-contiguity operations from CPU-side NumPy processing to the inference device
  • Simplify edge-device installation by installing the base ultralytics package instead of the larger [export] extra, with export dependencies installed automatically when an export is requested
  • W&B model artifact uploads now follow the existing training save argument where save=False skips uploading the best checkpoint while retaining metrics and plots
  • Convert saved models back to safe contiguous format and clear stale EMA data to improve compatibility with channels-last inference
Fixed 2
  • Prevent duplicate candidates after clipping, rounding, or integer conversion in hyperparameter tuning
  • Fix fraction handling during classification and detection INT8 export calibration so scalar fractions apply directly to the selected calibration split

From ultralytics

🌟 Summary

Ultralytics 8.4.133 improves hyperparameter tuning convergence, speeds up inference preprocessing, expands detection metrics, and simplifies edge-device setup. 🚀

📊 Key Changes
  • Smarter hyperparameter tuning — PR #25984 by @glenn-jocher

    • Replaces coordinate-by-coordinate crossover with fitness-weighted selection of complete, high-performing configurations.
    • Preserves useful relationships between hyperparameters instead of mixing them independently.
    • Mutates approximately half of the parameters in normalized search-space coordinates, allowing parameters that start at zero—such as degrees or shear—to evolve more effectively.
    • Gradually reduces mutation size when tuning stops finding better results, encouraging refinement after broad exploration.
    • Prevents duplicate candidates after clipping, rounding, or integer conversion, including small and discrete search spaces.
    • Ray Tune now defaults to Optuna multivariate TPE, with parallel-aware suggestions rather than independent random search.
  • Faster predictor preprocessing — PR #25982 by @jahsef

    • Moves image channel reordering and tensor-contiguity operations from CPU-side NumPy processing to the inference device.
    • Preserves output values while reducing unnecessary CPU copies.
    • Reported benchmarks show approximately 2.2–3.1× faster preprocessing on an RTX 5080, with additional gains on CPU.
  • Automatic channels-last CPU inference — PR #25983 by @JESUSROYETH

    • Enables channels-last memory layout automatically for native PyTorch inference and standalone validation on supported x86 Linux and Windows CPUs with oneDNN.
    • Keeps training defaults and unsupported platforms unchanged.
    • Explicit channels_last=True remains available for supported CPU and CUDA paths.
    • Saved models are converted back to a safe contiguous format and stale EMA data is cleared to improve compatibility.
  • More accurate INT8 calibration subsets — PR #25978 by @JESUSROYETH

    • Fixes fraction handling during classification and detection INT8 export calibration.
    • Scalar fractions now apply directly to the selected calibration split, while list-based fractions retain train/validation/test behavior.
    • Prevents exports from unintentionally calibrating on an entire dataset when only a subset was requested.
  • Size-specific mAP for custom detection datasets — PR #25981 by @fcakyon 📈

    • Custom detection datasets can now report small-, medium-, and large-object mAP when using save_json=True.
    • Builds temporary COCO-format annotations internally while preserving existing native metrics and prediction files.
    • Applies consistently during training validation, final-model validation, and standalone validation.
  • Simpler edge-device installation

    • Raspberry Pi, Jetson, DGX Spark, DeepStream, and related guides now install the base ultralytics package instead of the larger [export] extra.
    • Export dependencies are installed automatically when an export is requested, reducing installation size and dependency conflicts.
  • Improved Weights & Biases artifact control — PR #25985 by @glenn-jocher

    • W&B model artifact uploads now follow the existing training save argument.
    • save=False skips uploading the best checkpoint while retaining metrics and plots.
    • Default behavior remains unchanged with save=True.
  • Package update

    • Version bumped to 8.4.133.
🎯 Purpose & Impact
  • Better tuning results: Hyperparameter searches are more likely to preserve successful configurations, explore meaningful alternatives, and avoid wasting trials on duplicates. 🎯
  • Faster inference: Device-side preprocessing can reduce latency, particularly for batched inference and CPU-bound pipelines.
  • Broader performance optimization: Supported x86 CPU users may benefit from channels-last inference without changing their existing commands.
  • More reliable model export: INT8 calibration now honors requested dataset fractions, improving calibration speed and reducing unexpected resource usage.
  • Richer evaluation: Custom detection datasets can now receive object-size performance breakdowns similar to COCO evaluations.
  • Easier edge deployment: Base installations are smaller and less prone to dependency conflicts, while export workflows remain available when needed.
  • More control over experiment storage: W&B users can keep experiment tracking lightweight by disabling checkpoint saving with the standard save setting.
What's Changed

Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.132...v8.4.133

View original

Upgraded? How did it go?

Discussion