π Summary
Version 8.4.136 improves hyperparameter tuning, inference performance, backend compatibility, and data handlingβmaking YOLO workflows more reliable and efficient. π
π Key Changes
-
π― Smarter hyperparameter tuning β Current PR #25996 by @glenn-jocher
- Keeps the existing Gaussian search behavior unchanged during the first 30 completed trials.
- Learns relationships between promising hyperparameters by analyzing the best-performing results.
- Uses confidence-weighted, correlated mutations only when enough elite trial data is available.
- Reflects correlated proposals at search boundaries to avoid repeatedly clipping values.
- Benchmarking on basketball-hoop detection reported a new best fitness of 0.60576, outperforming the tested Ray Tune and previous custom Tuner configurations.
- Updated the hyperparameter tuning documentation.
-
π§ More robust channels-last inference
AutoBackendnow owns memory-layout selection during backend construction, avoiding duplicated or unsafe conversions.- Automatic channels-last selection is available for supported Linux and Windows x86 CPU environments using PyTorch 1.13 or newer with oneDNN.
- CUDA support remains available, while ARM64, MPS, older PyTorch versions, and exported backends retain their existing behavior.
- Fixed compatibility issues affecting PyTorch 1.9 and JetPack 6 systems.
-
β‘ Faster image preprocessing
- PIL and NumPy image inputs now use more efficient OpenCV color conversions.
- Avoids unnecessary image copies while preserving correct channel order and contiguous memory layout.
-
π More reliable prediction filtering
- Fixed the CLI
classesfilter for YOLOE and World models when class IDs are supplied numerically. - Text-based class prompts continue to work as before.
- Fixed the CLI
-
π· Improved image and visualization handling
- TIFF loading now respects uppercase extensions and grayscale flags, preserving multispectral image channels correctly.
- Pose visualization now scales keypoint coordinates without incorrectly scaling confidence values.
- Matplotlib backend restoration is safer when the originally configured backend is unavailable.
-
π Tracking and distributed tuning improvements
- BoT-SORT sparse optical-flow tracking avoids an unnecessary per-pixel grid allocation, reducing overhead on large frames.
- MongoDB-based distributed tuning now assigns iteration IDs atomically, preventing duplicate trial numbers from concurrent workers.
-
π§ͺ Better validation and project maintenance
- Dataset YAML files now receive early type validation with clearer error messages.
- Added CI and PyPI publishing status for the Ultralytics SDK repository.
- Updated the package version to 8.4.136.
π― Purpose & Impact
- Better tuning results: The Tuner can discover useful relationships between hyperparameters instead of treating every parameter independently, potentially improving final model quality with fewer wasted trials. π
- Safer inference across platforms: Backend construction now handles memory formats and retained tensors more consistently, reducing regressions on older PyTorch versions, ARM64 devices, and JetPack environments.
- Faster predictions: Common PIL and NumPy input paths require fewer copies and more efficient conversions, which can improve throughput in image-heavy applications.
- More predictable CLI behavior: Class filtering now works consistently across standard, YOLOE, and World models.
- Improved dataset reliability: Invalid YAML field types are reported earlier, making dataset configuration errors easier to diagnose.
- No architecture changes: This release does not introduce a new model architecture; its primary benefits are improved tuning, compatibility, performance, and correctness.
What's Changed
- Add Platform SDK CI status by @glenn-jocher in #25997
- Fix legacy torch predict regressions from default CPU channels-last by @onuralpszr in #25999
- Own channels-last layout during backend construction by @glenn-jocher in #26001
- Restore automatic CPU channels-last selection by @glenn-jocher in #26002
- Speed up PIL and ndarray prediction sources with cv2 color conversion by @JESUSROYETH in #25988
- Fix plot_images scaling pose keypoint confidence with coordinates by @aleehydar in #24432
- Fix imread TIFF branch ignoring flags and extension case by @lszSamLin in #25986
- Fix CLI classes filter being dropped for world and yoloe models by @chinazhangchao in #25882
- Skip OpenCV's per-pixel grid in BoT-SORT motion compensation by @JESUSROYETH in #25995
- Add type checking for dataset YAML by @Y-T-G in #21905
- Fix Matplotlib error when restoring original backend by @Y-T-G in #21863
- Fix concurrent MongoDB tuner iteration IDs by @glenn-jocher in #26000
- Fix PyTorch 1.9 backend initialization by @glenn-jocher in #26003
- Improve Tuner search with confidence-weighted covariance by @glenn-jocher in #25996
New Contributors
- @chinazhangchao made their first contribution in #25882
- @aleehydar made their first contribution in #24432
- @lszSamLin made their first contribution in #25986
Full Changelog: v8.4.135...v8.4.136