NewYour coding agent can read the release notes before it upgrades.Set up the MCP server โ
PyPI ยท #1672 most downloaded on PyPI
Ultralytics YOLO ๐ for SOTA object detection, instance segmentation, semantic segmentation, depth estimation, classification, pose estimation, oriented object detection, and multi-object tracking.
Last release 2 days ago
01 Oct 2026
Ships on a steady schedule
a new release about every 8 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
11 versions withdrawn
withdrawn after publishing
4 years old
846 releases ยท first in 2022
v8.4.61 is mainly a stability and export reliability release ๐ ๏ธ, led by an important fix for INT8 ONNX export failures and another fix for read-only `
v8.4.61 is mainly a stability and export reliability release ๐ ๏ธ, led by an important fix for INT8 ONNX export failures and another fix for read-only onnx2tf patching, with additional improvements to CI, export testing, docs accuracy, and platform documentation.
๐จ Fixed INT8 ONNX export crashes on small calibration datasets in PR #24721 by @glenn-jocher
๐ Fixed read-only onnx2tf patching issues in PR #24721 by @glenn-jocher
๐งช Stronger export validation in CI
yolo26n.pt, helping catch export problems earlier.๐ค TensorRT compatibility improvement
end2end export when using older TensorRT versions that do not support it.๐ฏ SAM duplicate-mask cleanup fix
๐ง Semantic segmentation support made clearer across the product
task=semantic as a valid option.๐ Large documentation and accuracy refresh
โ More reliable model export workflows
๐ Fewer production export failures
onnx2tf and ONNX calibration fixes target bugs already seen in real-world error tracking, so this release should reduce export breakages in actual deployments.๐งช Better confidence in deployment formats
๐ฆ Improved compatibility on specialized hardware
๐งน Cleaner and more accurate user experience
๐ Better guidance for a broad user base
In short, v8.4.61 is less about new models and more about making YOLO26 deployment safer, smoother, and more production-ready ๐ง๐
tip case in docs by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24669Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.60...v8.4.61
One column per quarter.
Ultralytics v8.4.60 is mainly about adding ONNX INT8 export ๐, making it easier to create smaller, faster deployment models with built-in calibration
Ultralytics v8.4.60 is mainly about adding ONNX INT8 export ๐, making it easier to create smaller, faster deployment models with built-in calibration support, while also including a few helpful export, training, and documentation fixes.
๐ Major new feature: ONNX int8=True export
data for calibration dataset selection and fraction for using only part of the dataset.*_int8.onnx.๐ Shared INT8 calibration pipeline
๐ Much better ONNX export documentation
โ๏ธ RKNN export now supports the standard half argument
half=True, and this becomes the default floating-point path for supported Rockchip hardware.๐ Segmentation training fix for polygons on image borders
segment2box ensures polygon points lying exactly on image edges are no longer dropped.๐ Auto-annotate docs updated
output_dir for auto-annotation was corrected.๐งน Docs metadata cleanup
๐ฏ Faster and lighter ONNX deployment
๐ ๏ธ Simpler export workflow
๐ More reliable maintenance and consistency
๐ Better user experience for deployment
๐ค Improved hardware export support
half=True update helps Rockchip deployments behave more predictably and aligns them better with common export expectations.๐ผ๏ธ More accurate segmentation training
Overall, v8.4.60 is a deployment-focused release ๐, with ONNX INT8 export as the standout improvement and several supporting fixes that improve reliability, documentation, and hardware export consistency.
ultralytics 8.4.60 ONNX INT8 export by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24666Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.59...v8.4.60
Ultralytics v8.4.59 improves Rockchip RKNN export with safer and clearer INT8 quantization support, making deployment on Rockchip edge devices more re
Ultralytics v8.4.59 improves Rockchip RKNN export with safer and clearer INT8 quantization support, making deployment on Rockchip edge devices more reliable and easier to use ๐
โ RKNN INT8 calibration file is now validated before export proceeds
๐ง Simpler RKNN INT8 workflow for users
data=... during export.dataset.txt calibration file automatically.dataset.txt stays an internal implementation detail, not something users are expected to manage directly.โก New RKNN INT8 export support introduced in this release cycle
int8=Truedata=...fraction=...๐ฑ Expanded support for INT8-only Rockchip chips
int8=True.๐ Documentation and export tables updated
int8=True is requireddata and fraction for calibration๐ก๏ธ Better RKNN API error handling
More reliable RKNN exports ๐
Easier INT8 quantization for everyone ๐
data=coco8.yaml or another dataset YAML, without learning RKNN-specific file conventions.Better support for edge deployment on Rockchip hardware ๐ฆ
Cleaner user experience ๐งน
Potential performance and compatibility gains ๐
Lower risk of misconfiguration โ ๏ธ
If helpful, I can also provide a 1-paragraph release note version or a developer-focused changelog summary for v8.4.59.
ultralytics 8.4.59 Rockchip RKNN INT8 export option by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24656Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.58...v8.4.59
Ultralytics v8.4.58 is mainly a reliability-focused release ๐ ๏ธ that improves how export formats are tested in CI, making model export support more sta
Ultralytics v8.4.58 is mainly a reliability-focused release ๐ ๏ธ that improves how export formats are tested in CI, making model export support more stable, isolated, and easier to maintainโespecially for specialized formats.
๐ฆ Export testing was redesigned around isolated environments
๐งฉ Each export format now declares its own environment
export_formats() registry now includes environment metadata for every export target.๐งช New --export-env test selection
โ๏ธ New automated isolated export job
IsolatedExports CI workflow now builds dedicated virtual environments and runs smoke tests plus export tests inside them.๐ฆ Export dependencies were split into smaller groups
export-baseexport-tensorflowexport-coremlexport-executorchexport-deepxexport-legacy-torchโ Added checks to prevent export registry mistakes
๐ค RKNN export test added
๐ณ Docker cleanup improved
๐ More reliable exports
๐ Faster and leaner development workflows
๐งน Simpler maintenance for the Ultralytics team
๐ Better support for specialized deployment targets
๐ No major new model architecture in this release
๐ง Good news for production users
If you'd like, I can also turn this into a shorter changelog-style summary or a more technical developer-focused breakdown.
ultralytics 8.4.58 Isolated CI export environments by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24649Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.57...v8.4.58
๐ Ultralytics v8.4.57 is mainly a Python 3.13 readiness release, making CI and export workflows more robust across platforms, while also adding a mean
๐ Ultralytics v8.4.57 is mainly a Python 3.13 readiness release, making CI and export workflows more robust across platforms, while also adding a meaningful RT-DETR CoreML export upgrade and a semantic segmentation mask alignment fix.
๐ Python 3.13 CI is now the main focus of this release
๐ก๏ธ Export and slow-test CI became much more resilient
๐ซ Python 3.13 compatibility guards were added for unsupported export stacks
๐ฆ RT-DETR CoreML export improved significantly
๐ฏ Semantic segmentation masks are now better aligned
๐ Docs and platform updates
โ Better future-proofing for users on new Python versions
๐ Much easier debugging for maintainers and advanced users
๐ค Safer export experience across many backends
๐ RT-DETR deployment on Apple ecosystems gets more practical
๐ผ๏ธ Semantic segmentation results should look cleaner
๐ Easier migration into the Ultralytics Platform
Overall, v8.4.57 is less about introducing a brand-new model and more about stability, compatibility, and deployment polish ๐ ๏ธโจโespecially for Python 3.13, export workflows, and RT-DETR/CoreML users.
test_export by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24609ultralytics 8.4.57 Python 3.13 CI by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24640Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.56...v8.4.57
Ultralytics v8.4.56 improves QNN export reliability by fixing compatibility with newer onnxruntime-qnn packages, especially on Linux x86-64. ๐
Ultralytics v8.4.56 improves QNN export reliability by fixing compatibility with newer onnxruntime-qnn packages, especially on Linux x86-64. ๐
Fixed QNN export for built-in provider wheels ๐ง
Ultralytics now detects whether onnxruntime-qnn already includes QNNExecutionProvider internally, instead of always trying to register it as a separate plugin.
Avoids export failures on some Linux setups ๐ง
This prevents a known failure on Linux x86-64 wheels where plugin registration could crash with an undefined symbol error.
Supports both QNN packaging styles ๐ฆ
The export flow now works with:
Smarter QNN session creation ๐ง
If the provider is built in, Ultralytics now launches the ONNX Runtime session directly with the QNN provider. If it is plugin-based, it keeps the previous registration path.
Documentation/comments updated for clarity ๐
Internal descriptions were updated to reflect that QNN may be exposed either as a plugin or as a built-in ONNX Runtime provider.
Makes QNN export more robust โ
Users exporting models to Qualcomm QNN should see fewer environment-specific errors and smoother exports.
Improves compatibility with newer runtime wheels ๐
This is especially helpful as onnxruntime-qnn packaging evolves across platforms and releases.
Reduces setup friction for deployment ๐ฑ
If you are exporting YOLO models like YOLO26 for Qualcomm and edge hardware workflows, this change lowers the chance of export-time breakage.
No major model architecture changes in this release ๐ค
v8.4.56 is mainly a stability and export compatibility update, not a new model or training feature release.
Most relevant for advanced deployment users โก
If you use standard training and inference, this release may not change much day to day. But for users targeting QNN / Qualcomm deployment pipelines, it should have a meaningful positive impact.
This release is a small but important deployment fix: it makes QNN export smarter and more portable by handling both old and new onnxruntime-qnn layouts correctly, with the biggest benefit for Linux-based export environments.
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.55...v8.4.56
Ultralytics v8.4.55 is a reliability-focused release that mainly fixes ONNX/QNN export environments so existing onnxruntime variants are no longer acc
Ultralytics v8.4.55 is a reliability-focused release that mainly fixes ONNX/QNN export environments so existing onnxruntime variants are no longer accidentally overwritten, while also improving deployment docs, especially for Hailo and YOLO26 task support ๐
๐ ๏ธ Major export fix for ONNX/QNN environments
onnxruntime package variants such as:
onnxruntime-qnnonnxruntime-directmlonnxruntime-openvinoonnxruntime-trainingonnxruntime, which could overwrite specialized builds and break export or inference.๐ฆ Safer QNN export workflows
๐ New Hailo deployment guide
model.export() target, but can still be used through the external Hailo toolchain.๐ง Broader and clearer YOLO26 task documentation
โก Faster and more stable CI testing
pytest-xdist.๐ Improved Comet documentation
COMET_* environment variable docs and clarified online/offline logging behavior.๐ Minor maintenance updates
actions/cache@v4 to @v5.โ More reliable exports for advanced runtimes
๐ฑ Better support for edge and hardware-specific deployment
๐งฉ Less confusion around segmentation tasks
๐ก๏ธ Better overall stability
๐ Easier adoption of YOLO26 capabilities
In short: v8.4.55 is mainly a stability and compatibility release ๐งโespecially valuable for users exporting to ONNX/QNN or working with specialized runtime buildsโwhile also making deployment and YOLO26 task support clearer for the broader community.
ultralytics 8.4.55 Accept onnxruntime variants in ONNX export requirements check by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24611Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.54...v8.4.55
Ultralytics v8.4.54 is led by a big new deployment feature: local Qualcomm QNN export for Snapdragon devices ๐ฑโก, plus several quality-of-life improvem
Ultralytics v8.4.54 is led by a big new deployment feature: local Qualcomm QNN export for Snapdragon devices ๐ฑโก, plus several quality-of-life improvements for Solutions, export docs, tuning compatibility, and data-loading reliability.
๐ New qnn export format for Qualcomm Snapdragon devices
format="qnn".from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="qnn")
๐ฆ New QNN backend support for inference/validation workflows
๐ Major export documentation cleanup and standardization
๐ผ๏ธ imgsz added to all Ultralytics Solutions
imgsz argument, giving users direct control over inference input size.๐ ๏ธ Better robustness for segmentation and image caching
(H, W, 1) instead of plain single-channel arrays..npy image cache issues that could cause grayscale models to accidentally load RGB data.๐ง Tracking utility optimization
๐ฏ Ray Tune compatibility improvement
๐งพ Small but useful documentation updates
show_labels and show_conf..jpeg2000 as a supported image format.๐ฌ Semantic segmentation loss dtype fix
๐ฑ Big win for edge/mobile deployment
โก Faster path to production on Snapdragon
๐งฉ More consistent deployment experience
๐๏ธ More control in packaged Solutions
imgsz to Solutions gives users a simple way to trade off speed vs. accuracy, just like in normal YOLO inference.๐ก๏ธ More reliable training and inference
๐ Better compatibility with modern tooling
๐ Cleaner debugging and validation visuals
show_labels and show_conf options make validation outputs easier to customize for analysis.Overall, v8.4.54 is a strong release for anyone interested in device deployment, especially on Qualcomm Snapdragon, while also tightening up reliability and usability across the broader Ultralytics ecosystem ๐
embedding_distance with NumPy by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24572_gaussian_smooth changes by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24575imgsz support to all Ultralytics Solutions by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24579cv2.imread by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24582ultralytics 8.4.54 Qualcomm QNN export by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24591Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.53...v8.4.54
Ultralytics v8.4.53 mainly improves training reliability on NVIDIA GPUs by automatically recovering from more CUDA memory-related failures, while also
Ultralytics v8.4.53 mainly improves training reliability on NVIDIA GPUs by automatically recovering from more CUDA memory-related failures, while also polishing semantic segmentation stability, documentation clarity, and CI robustness ๐
Smarter GPU memory recovery during training ๐ง โก
The biggest change in this release, from PR #24569 by @glenn-jocher, expands the existing auto-retry logic for large-batch GPU training.
CUDNN_STATUS_INTERNAL_ERRORSemantic segmentation validation is more reliable ๐ผ๏ธโ
PR #24552 fixes issues in semantic validation so metrics are preserved correctly after evaluation.
NaN-style metric problems in sparse-class casesSegmentation loss is numerically more stable ๐ ๏ธ๐
PR #24554 improves Dice loss stability by forcing key intermediate calculations to use float32.
Much better docs for prediction outputs, especially semantic segmentation ๐
PR #24558 is a major documentation improvement.
Results object for each tasksemantic_mask output in detailBroader YOLO26 and semantic task visibility across docs and metadata ๐
Several updates improve how Ultralytics presents current capabilities:
CI and test workflow became more stable ๐งช
Multiple changes reduce avoidable test failures:
Small but useful documentation and packaging fixes โจ
Fewer frustrating training crashes on GPUs ๐ช
If you train with aggressive batch sizes, this release can help Ultralytics recover automatically from more real-world CUDA memory failures instead of stopping unexpectedly.
Better experience for users pushing hardware limits ๐
Large-batch training on single GPUs should now be more forgiving, especially when failures come from CUDA backend libraries rather than a plain out-of-memory exception.
More dependable semantic segmentation workflows ๐ง
Users working with semantic segmentation should see:
Easier to understand model outputs ๐
The new docs make it much clearer what prediction results contain for each task, which is especially helpful for:
ResultsBetter confidence in production use โ
The โProduction/Stableโ metadata and improved CI signal a continued push toward reliability for real deployments.
Low risk release with practical quality-of-life improvements ๐
This is not a major architecture or model release, but it delivers meaningful gains in stability, clarity, and usability, especially for training and semantic segmentation users.
nt_per_image printing issue by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24552track_high_thresh in track docs by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/24559ultralytics 8.4.53 Retry CUDA backend memory errors during training by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24569Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.52...v8.4.53
๐ Ultralytics 8.4.52 is a major release centered on adding full YOLO26 semantic segmentation support, plus several reliability, export, visualization,
๐ Ultralytics 8.4.52 is a major release centered on adding full YOLO26 semantic segmentation support, plus several reliability, export, visualization, and documentation improvements.
๐ New semantic task added across Ultralytics
๐ง New YOLO26 semantic segmentation models
-sem suffix, such as:
yolo26n-sem.ptyolo26s-sem.ptyolo26m-sem.ptyolo26l-sem.ptyolo26x-sem.pt๐๏ธ Complete semantic segmentation pipeline introduced
SemanticSegmentationModelSemanticSegmentationTrainerSemanticSegmentationValidatorSemanticSegmentationPredictor๐ผ๏ธ Semantic masks now appear directly in inference results
SemanticMask result type.๐ฆ Built-in semantic segmentation datasets added
๐ Augmentation pipeline upgraded for semantic masks
๐ค Export and deployment support extended
nms=True is automatically disabled for semantic models, since it does not apply to this task.๐งช Much broader testing coverage
๐ ๏ธ Other notable fixes in this release
0.0 GFLOPs. ๐show_labels and show_conf, making crowded scenes easier to inspect. ๐๐ฏ Biggest impact: YOLO26 can now do semantic segmentation natively
โก Easier adoption for existing YOLO users
๐งฉ Broader dataset compatibility
๐ More reliable metrics and logging
๐ Better debugging and visualization
๐ Stronger deployment readiness
๐ Improved docs and setup guidance
In short, v8.4.52 is a feature-heavy release led by the launch of YOLO26 semantic segmentation ๐. For many users, this is the headline change and a meaningful expansion of what Ultralytics can now handle out of the box.
get_flops dtype mismatch on half-precision models by @ahmet-f-gumustas in https://github.com/ultralytics/ultralytics/pull/24504on_fit_epoch_end in final_eval overwriting last epoch metrics by @deependujha in https://github.com/ultralytics/ultralytics/pull/24530zensical 0.0.43 by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24533ultralytics 8.4.52 YOLO Semantic Segmentation models by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24518Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.51...v8.4.52
Ultralytics v8.4.51 focuses mainly on better training traceability and clearer deployment/docs updates ๐ฆ๐, with the most important change adding the G
Ultralytics v8.4.51 focuses mainly on better training traceability and clearer deployment/docs updates ๐ฆ๐, with the most important change adding the Git commit message to training metadata so models are easier to track, reproduce, and audit.
Training metadata now includes the Git commit message ๐งพ
The headline update from @glenn-jocher adds the current commit subject into:
git.messagegitCommitMessageGitRepo.messageMore robust Git metadata handling ๐ง
Git repository parsing was improved to better read metadata from Git internals, including shared/worktree-style layouts. This helps Ultralytics capture version information more reliably during training.
Major augmentation pipeline refactor ๐ ๏ธ
A substantial internal refactor by @Laughing-q introduced a more unified transform system:
BaseTransform now standardizes how image, instance, and semantic-mask transforms are appliedMosaic, MixUp, CutMix, CopyPaste, RandomPerspective, RandomFlip, and LetterBox were reorganized around this shared structureOpenVINO docs updated with YOLO26 benchmarks ๐
The OpenVINO documentation now highlights YOLO26 benchmark results instead of older YOLO11 benchmarks, with refreshed performance data across newer Intel CPUs, GPUs, and NPUs.
DeepX export documentation expanded ๐ค
DeepX was added to the export formats table, with supported export arguments and output folder behavior documented more clearly.
RT-DETR inference tuning guidance added โก
Docs now explain that users can reduce query count for faster RT-DETR inference, helping users trade a bit of accuracy for lower latency when needed.
YOLOE export behavior clarified โ ๏ธ
The docs now clearly warn that exported YOLOE models are static: once exported, prompt-based class configuration is baked into the model and cannot be changed later.
Ultralytics Platform GPU docs refreshed โ๏ธ
Platform docs now reflect:
Test/CI compatibility improvement for Axelera export ๐งช
Axelera export tests are now limited to supported PyTorch versions, reducing false failures in CI.
General documentation cleanup ๐
Smaller updates include a fixed DeepX link, README simplification, removal of old Weglot docs overrides, and wording/casing polish across docs.
Easier experiment tracking and reproducibility ๐
Adding the Git commit message makes it much easier to tell what exact code change produced a trained model, especially when many experiments are run close together.
Better debugging and collaboration ๐ค
Teams using local training or the Ultralytics Platform can now connect checkpoints and cloud runs to a human-readable commit description, not just a hash.
Stronger foundations for future augmentation work ๐งฑ
The transform refactor is mostly an internal improvement, but it should make augmentations more consistent, easier to maintain, and safer to extend in future releases.
Clearer deployment decisions for users ๐
Updated YOLO26 OpenVINO benchmarks, DeepX export docs, and RT-DETR speed tips help users choose faster deployment settings with more confidence.
Fewer surprises in export workflows โ
The YOLOE warning helps users avoid exporting a model and later discovering that prompt changes no longer work.
Improved platform transparency ๐ณ
Updated GPU availability and pricing docs help users better plan cloud training costs and choose the right hardware tier.
Overall, v8.4.51 is less about new end-user model features and more about making training runs easier to understand, reproduce, and deploy reliably ๐
2.8.0<=torch<2.12.0 in Tests CI by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24487BaseTransform and unify augmentation pipeline by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24434ultralytics 8.4.51 Add Git commit message to training metadata by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24505Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.50...v8.4.51
Ultralytics 8.4.50 is mainly a deployment-focused release ๐, led by a new DeepX export and inference integration that makes it easier to run YOLO mode
Ultralytics 8.4.50 is mainly a deployment-focused release ๐, led by a new DeepX export and inference integration that makes it easier to run YOLO models on DeepX NPU edge hardware, along with a few quality-of-life fixes for tuning reliability, mixed-precision model fusion, and RT-DETR documentation.
New DeepX export support added ๐ง โก
You can now export Ultralytics models directly with format="deepx" as part of the normal export workflow.
.dxnn format.config.json for preprocessing and calibrationmetadata.yaml for model informationint8=True.coco128.yaml.New DeepX inference backend added ๐
Exported DeepX models can now be loaded back into Ultralytics for inference through a dedicated backend, making deployment more integrated and easier to use.
DeepX documentation and references added ๐
This release includes a full DeepX integration guide, reference pages, export docs, and navigation updates so users can more easily learn and adopt the new workflow.
Hyperparameter tuning now reports failures more honestly ๐ ๏ธ
The tuner no longer claims all iterations completed successfully when training runs actually failed.
best_hyperparameters.yaml files are no longer written when no valid result existsFix for dtype issues during Conv/BN and Deconv/BN fusion ๐ฏ
Fusing models in float16 or bfloat16 now works correctly, avoiding dtype mismatch errors during optimization.
RT-DETR docs improved with eval_idx guidance ๐โก๏ธโก
The docs now explain how to reduce RT-DETR decoder layers at inference time to trade a small amount of accuracy for lower latency, without retraining.
Biggest impact: easier edge deployment on DeepX hardware ๐
This is the headline feature of 8.4.50. Users targeting low-power embedded AI systems can now export YOLO models directly into a format optimized for DeepX NPUs, making deployment much smoother.
Better out-of-the-box hardware acceleration workflows โ๏ธ
By automatically handling INT8 export, calibration setup, and preprocessing config generation, the new DeepX integration reduces manual work and lowers the barrier to specialized edge deployment.
Improved production readiness for embedded use cases ๐ค
This helps teams building applications like smart cameras, robotics, industrial automation, and other edge AI systems where speed and power efficiency matter.
More trustworthy tuning results โ
Users running hyperparameter search will now get clearer feedback when experiments fail, helping avoid false confidence and bad downstream decisions.
More stable model optimization in reduced precision ๐งฉ
The fusion fix is especially useful for advanced users working with float16 or bfloat16, improving reliability in optimized inference pipelines.
Helpful RT-DETR speed tuning guidance for latency-sensitive users โฑ๏ธ
While this is docs-only, it gives users a practical way to make RT-DETR faster in deployment scenarios without changing training.
dx_engineOverall, 8.4.50 is a strong deployment release, with DeepX integration as the standout addition ๐โespecially valuable for anyone moving Ultralytics models onto specialized edge AI hardware.
eval_idx instruction by @artest08 in https://github.com/ultralytics/ultralytics/pull/24465fuse_conv_and_bn and fuse_deconv_and_bn by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/24480ultralytics 8.4.50 New Export Integration: Deepx by @ambitious-octopus in https://github.com/ultralytics/ultralytics/pull/23553Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.49...v8.4.50
Ultralytics v8.4.49 is mainly a stability and usability release ๐ ๏ธโit helps training fail earlier with clearer messages, recovers from corrupted cache
Ultralytics v8.4.49 is mainly a stability and usability release ๐ ๏ธโit helps training fail earlier with clearer messages, recovers from corrupted cached weights automatically, and includes several quality-of-life fixes across training, metrics, benchmarking, tuning, tracking, and docs.
๐จ Fail-fast training improvements from PR #24478 by @glenn-jocher:
.pt weight file is damaged or incomplete, Ultralytics now deletes it and re-downloads it instead of failing repeatedly.freeze is set too high and no trainable parameters remain, training now stops immediately with a direct, understandable error.FileNotFoundError naming the empty split.๐ง Better distributed training behavior with torch.compile from PR #24413 by @Y-T-G:
๐ Per-image F1 metric fix from PR #24444 by @fcakyon:
๐งช Hyperparameter tuning randomness fix from PR #24451 by @raimbekovm:
๐ค๏ธ Dataset relative path handling fix from PR #24429 by @auduntorp:
../ are now handled correctly in dataset file lists.โ๏ธ Benchmarking fix from PR #24450 by @Y-T-G:
data argument from being incorrectly forwarded into export benchmarking flows.๐ฏ Tracker API cleanup from PR #24457 by @Laughing-q:
frame_rate argument from BYTETracker and BOTSORT, making tracker setup simpler.๐ CI / runner updates from PR #24436 by @glenn-jocher:
๐ Docs and reference improvements:
torch.compile, or hyperparameter evolution should see fewer odd edge-case failures.Overall, v8.4.49 is less about new models and more about making Ultralytics training and evaluation more robust, more predictable, and easier to troubleshoot โ
static_graph=True for compile and remove find_unused_parameters by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/24413data argument in benchmark call by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/24450frame_rate in BYTETracker/BOTSORT by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24457ultralytics 8.4.49 Fail fast on three common training failure modes by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24478Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.48...v8.4.49
Ultralytics v8.4.48 is a stability-focused release that mainly improves training reliability on Ultralytics Platform and makes failure cases much clea
Ultralytics v8.4.48 is a stability-focused release that mainly improves training reliability on Ultralytics Platform and makes failure cases much clearer, with supporting fixes for benchmarking and reporting. ๐ ๏ธโ
(Top priority) Platform training edge-case fixes from PR #24431 by @glenn-jocher:
best/last) is saved, instead of failing later with confusing behavior. ๐พultralytics.* module, with guidance to retrain/use current official models. ๐ฆBenchmark/export robustness fix from PR #24418 by @lakshanthad:
data is now only passed to export formats that actually support it, reducing export benchmark failures across formats. ๐Platform metrics correctness fix from PR #24425 by @mykolaxboiko:
training_complete.bestEpoch now reports the real best epoch (from early stopping), not just the final epoch trained. ๐ฏDocs improvement for multi-GPU training from PR #24422 by @artest08:
Maintenance/docs housekeeping
pip updates switched from daily to monthly (PR #24411 by @glenn-jocher). ๐
bestEpoch, improving experiment tracking and decision-making. ๐data arg to export formats by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24418bestEpoch reporting wrong value at training_complete by @mykolaxboiko in https://github.com/ultralytics/ultralytics/pull/24425ultralytics 8.4.48 Fix Platform training edge cases by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24431Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.47...v8.4.48
Ultralytics v8.4.47 is a reliability-focused release that fixes a key CLI bug for heatmap colormaps ๐จ, while also improving RT-DETR post-processing, r
Ultralytics v8.4.47 is a reliability-focused release that fixes a key CLI bug for heatmap colormaps ๐จ, while also improving RT-DETR post-processing, remote checkpoint loading, Edge TPU export behavior, and several stability edge cases across loaders and I/O โ .
๐ฅ Most important (current PR #24219 by @raimbekovm): CLI colormap parsing fixed for Solutions Heatmap
colormap=cv2.COLORMAP_INFERNO now work as documented.cv2.<UPPERCASE_CONSTANT> values to numeric constants, with security protections still in place ๐ก๏ธ.RT-DETR got a meaningful post-processing upgrade (PR #24403 by @artest08)
[cx, cy, w, h, score, class].Edge TPU export is now more robust and explicit (PR #24383 by @lakshanthad)
int8=True, Ultralytics now warns and auto-enables it early.Remote checkpoint URI support improved (PR #24395 by @glenn-jocher)
pretrained=ul://... now resolves like other remote model references ๐.Multiple bug fixes across data loading, hub session, and solutions (PR #24397 by @glenn-jocher)
Safer image reading behavior (PR #24406 by @Y-T-G)
imread() now returns None on missing/unreadable files (matching common cv2.imread expectations), instead of crashing.YOLOE validation guardrail added (PR #23982 by @ahmet-f-gumustas)
Results serialization improvements (PR #23909 by @glenn-jocher)
CI maintenance update (PR #24396 by @UltralyticsAssistant)
v3.0.2 to v3.0.3 in workflows.yolo solutions heatmap: documented colormap syntax now behaves correctly out of the box ๐.imread), cleaner serialization, and several bug fixes reduce runtime surprises.data arg is not passed by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24383None in imread on read failure to match cv2.imread by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/24406ultralytics 8.4.47 Fix CLI parsing for solution colormap values by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/24219Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.46...v8.4.47
Ultralytics v8.4.46 is a stability-focused release that primarily fixes a key multi-scale training edge case ๐ง, while also improving export reliabilit
Ultralytics v8.4.46 is a stability-focused release that primarily fixes a key multi-scale training edge case ๐ง, while also improving export reliability, hardware support clarity, and documentation quality across YOLO workflows.
๐จ Priority fix (PR #24394 by @glenn-jocher): Multi-scale training minimum size clamp
8.4.45 โ 8.4.46.๐ Resume training safety fix (PR #24386 by @lmycross)
๐ฆ Export usability and correctness improvements
data and fraction for INT8 calibration (PR #24382).๐ง RKNN support clarified and enforced (PR #24384 by @lakshanthad)
rv1103, rv1106, rv1103b, rv1106b) with a helpful error.๐ Docs and content polish
More robust training ๐ก๏ธ
The multi-scale clamp fix prevents invalid tiny image sizes, reducing crash risk and instability during trainingโespecially for small-image or aggressive augmentation setups.
Less wasted compute/time โฑ๏ธ
The resume fix avoids accidental extra epochs when training is already complete.
Cleaner deployment experience ๐
Better export path reporting and clearer per-format argument support make exporting easier to automate and debug.
Fewer hardware surprises ๐ค
RKNN users now get immediate, explicit feedback on unsupported INT8-only chips, avoiding confusing late-stage failures.
Better docs trustworthiness โ
Improved documentation consistency helps both new and advanced users move faster with fewer mismatches between docs and actual behavior.
data and fraction args across export formats by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24382ultralytics 8.4.46 Fix multiscale minimum train size by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24394Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.45...v8.4.46
Ultralytics v8.4.45 is a hotfix release that primarily restores correct pretrained training behavior for .pt models (like YOLO26 checkpoints), plus im
Ultralytics v8.4.45 is a hotfix release that primarily restores correct pretrained training behavior for .pt models (like YOLO26 checkpoints), plus important TensorRT/Jetson export reliability improvements and clearer docs. ๐
๐ฅ Critical training hotfix (PR #24378 by @glenn-jocher):
YOLO("*.pt").train() and CLI training correctly start from pretrained checkpoint weights.pretrained=False now only disables weight loading when explicitly set.โ๏ธ TensorRT compatibility hardening:
check_tensorrt() for more consistent setup.๐ค Jetson / INT8 export improvements (PR #24368):
๐ฆ Export argument support expanded:
data as a valid argument for more export formats (including TensorRT, OpenVINO, CoreML, TFLite, TF.js, MNN, IMX), improving dataset-aware INT8/export workflows.๐ Documentation updates:
.pt checkpoints could silently skip pretrained weights, which could reduce accuracy and waste training time.pretrained=False.data argument support reduces validation friction across backends.tensorrt==10.2.0 to fix libnvinfer_builder_resource_win.so.10.2.0 error by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24367tensorrt from 10.3 to 10.7 on JetPack 6 systems to fix YOLO26 int8 build issues by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24368data argument to valid args for INT8 export formats by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24362ultralytics 8.4.44 Apply pretrained arg across model trainers by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24374ultralytics 8.4.45 Fix pretrained checkpoint training regression by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24378Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.43...v8.4.45
Ultralytics v8.4.44 improves training control and deployment reliability, led by a key fix that makes the pretrained setting behave consistently acros
Ultralytics v8.4.44 improves training control and deployment reliability, led by a key fix that makes the pretrained setting behave consistently across trainers ๐ง๐.
(Top priority) pretrained argument now works consistently in training flows (@glenn-jocher) โ
pretrained=False is now properly respected even when training from a loaded .pt checkpoint.Export improvements for INT8 workflows ๐ฆ
data as a valid export argument for more backends (including TensorRT, OpenVINO, CoreML, TFLite, TF.js, MNN, IMX, and others), reducing โunsupported argumentโ friction.Jetson + TensorRT stability updates ๐ค
end2end auto-disable logic for INT8 export is now narrowly targeted to the known problematic combo (JetPack 6 + TensorRT 10.3.0), instead of broader disabling.TensorRT version guardrails updated ๐ก๏ธ
10.2.0 (replacing older 10.1.0 exclusion) in loading/export checks.Documentation updates ๐
More predictable training outcomes ๐ฏ
Users can trust that pretrained=False truly starts from random initialization, and pretrained="path/to/weights.pt" is honored correctly.
Easier experiment control and reproducibility ๐
Reusing checkpoint configs while controlling weight initialization makes transfer learning and ablation experiments cleaner and less error-prone.
Smoother deployment on edge devices โก
Jetson/TensorRT fixes reduce export failures, especially for INT8 YOLO26 workflows.
Fewer environment-related surprises ๐งฉ
TensorRT version protections help avoid known broken combinations before they cause runtime/export errors.
Better usability for a broad audience ๐
Clearer docs and improved Platform dataset tooling (clustering) help both advanced practitioners and newer users work faster with higher confidence.
tensorrt==10.2.0 to fix libnvinfer_builder_resource_win.so.10.2.0 error by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24367tensorrt from 10.3 to 10.7 on JetPack 6 systems to fix YOLO26 int8 build issues by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24368data argument to valid args for INT8 export formats by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24362ultralytics 8.4.44 Apply pretrained arg across model trainers by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24374Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.43...v8.4.44
Ultralytics v8.4.43 mainly improves dataset reliability by fixing how NDJSON and Ultralytics Platform (ul://.../datasets/...) datasets are resolved du
Ultralytics v8.4.43 mainly improves dataset reliability by fixing how NDJSON and Ultralytics Platform (ul://.../datasets/...) datasets are resolved during validation, not just training โ
๐
Major fix (PR #24365 by @glenn-jocher): unified NDJSON/Platform dataset handling
convert_ndjson_to_yolo_if_needed() in ultralytics.data.utils.ul:// datasets correctly.8.4.42 โ 8.4.43.Docs update
Minor cleanup (PR #24351 by @ahmet-f-gumustas)
for ... in dict.keys() loops with direct dict iteration across several files.More consistent dataset behavior across train + val
Users working with NDJSON or Ultralytics Platform datasets now get the same automatic conversion behavior in both stages, reducing surprises. โ
Fewer validation-time failures
The key practical improvement is preventing validation setup issues when data is provided as .ndjson or ul://... URIs. This makes workflows more robust, especially when running validation independently. ๐ก๏ธ
Better stability in distributed environments
The conversion step is now coordinated for multi-process runs, helping avoid duplicate or conflicting setup work. ๐ฅ๏ธ๐ฅ๏ธ
Low upgrade risk
Aside from the dataset-resolution fix, the rest is mostly internal cleanup with no intended user-facing behavior changes. ๐
.keys() calls in dict iteration by @ahmet-f-gumustas in https://github.com/ultralytics/ultralytics/pull/24351ultralytics 8.4.43 Fix NDJSON dataset validation by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24365Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.42...v8.4.43
Ultralytics v8.4.42 focuses on more reliable training under GPU memory pressure ๐ง ๐ช, plus several stability, security, export, and documentation improv
Ultralytics v8.4.42 focuses on more reliable training under GPU memory pressure ๐ง ๐ช, plus several stability, security, export, and documentation improvements that make YOLO workflows smoother for both developers and end users.
Top priority (current PR #24360 by @glenn-jocher): Better OOM recovery during training ๐
batch, loss, preds) and trainer loss state are now explicitly cleared before retry.Security hardening in downloads and path handling ๐
Export pipeline refactor + reliability fixes ๐ฆ
Backend usability improvement โจ
model(x) instead of only model.forward(x).Bug fixes affecting real workflows ๐ ๏ธ
./[data]/).plot_results() crash path when CSV plotting fails.one2many branches are absent.Platform and docs improvements ๐
segments (not polygon).show=False, profiling).1.6.0.Fewer failed training runs on limited VRAM ๐ฏ
The main v8.4.42 change helps training recover more reliably from first-epoch OOM events, reducing frustrating restarts.
Safer defaults for file and dataset handling ๐ก๏ธ
Security-focused path and extraction checks reduce risk when working with external files and archives.
More dependable exports across formats ๐
Export refactors and CoreML fixes improve cross-platform conversion stability, especially for deployment-heavy teams.
Better developer ergonomics ๐ฉโ๐ป
Callable backends, cleaner export internals, and bug fixes in tuning/plotting/path-loading improve everyday productivity.
Clearer onboarding and learning resources for all users ๐
Improved docs (including Ultralytics Platform guidance and Jetson memory tips) make setup and adoption easier for newcomers while still useful for advanced users.
__call__ wrapper for BaseBackend.forward method by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24311ax variable in plot_results by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/24345FileNotFoundError when loading datasets from paths containing square brackets by @prashansapkota in https://github.com/ultralytics/ultralytics/pull/24353one2many head exists while fusing prompt embeddings by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/24359exporter.py into per-format utility modules by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24245ultralytics 8.4.42 Free tensors before OOM batch retry by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24360Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.41...v8.4.42
Ultralytics v8.4.41 focuses on a key SAM3 video tracking quality fix (fewer ghost IDs) plus a data pipeline reliability improvement for NDJSON dataset
Ultralytics v8.4.41 focuses on a key SAM3 video tracking quality fix (fewer ghost IDs) plus a data pipeline reliability improvement for NDJSON datasets, with a large refresh of docs and Ultralytics Platform guidance ๐โจ
๐ฏ Major tracking fix (current PR, #24249 by @Y-T-G):
init_trk_keep_alive and max_trk_keep_alive from 30 โ 10), so stale tracks are removed faster.๐๏ธ Safer NDJSON dataset conversion (#24290 by @glenn-jocher):
class_names are missing (infers class count more robustly).๐ Documentation and usability upgrades (multiple PRs):
cfg argument (yolo cfg=...) for reusable custom config files.๐งช CI benchmark stability updates (#24286):
ubuntu-latest to cpu-latest.๐ฆ Version bump: 8.4.40 โ 8.4.41.
ubuntu-latest to cpu-latest by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24286ultralytics 8.4.41 Avoid mutable NDJSON dataset cache collisions by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24290ultralytics 8.4.41 Fix SAM3 FP ghost IDs in video tracking by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/24249Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.40...v8.4.41
Ultralytics v8.4.40 introduces per-image precision/recall/F1 tracking during validation (led by PR #24089 from @Laughing-q), making it much easier to
Ultralytics v8.4.40 introduces per-image precision/recall/F1 tracking during validation (led by PR #24089 from @Laughing-q), making it much easier to see exactly which images your model handles well or poorly. ๐๐ผ๏ธ
precision, recall, f1, tp, fp, fn for each image.metrics.box.image_metrics (and also for seg and pose where applicable). โ
image_metrics correctly across ranks, so results remain complete in larger training setups. ๐ง โ๏ธimage_metrics storage8.4.39 โ 8.4.40 ๐ultralytics 8.4.40 Per-image Precision and Recall by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24089Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.39...v8.4.40
Ultralytics v8.4.39 is a quality-and-usability release focused on clearer run naming (exp-2), better CLI coverage for Solutions, safer rotated-box tra
Ultralytics v8.4.39 is a quality-and-usability release focused on clearer run naming (exp-2), better CLI coverage for Solutions, safer rotated-box training behavior, and broad documentation/platform clarity improvements. ๐
(Most important) Dashed run path increments are now default via PR #24193 by @glenn-jocher โ
increment_path() now creates names like exp-2 and results-2.txt (instead of exp2, results2.txt).New CLI parity for Solutions via PR #24251 by @raimbekovm ๐งฐ
yolo solutions regionyolo solutions securityyolo solutions parkingRotated OBB training safety fix via PR #24260 by @lmycross ๐ ๏ธ
gt_bboxes in RotatedTaskAlignedAssigner by cloning before edits.Small reliability hardening for security alarm flow ๐
CI workflow resilience improvements via PR #24261 by @glenn-jocher โป๏ธ
Documentation and platform clarity updates ๐
Cleaner experiment tracking ๐๏ธ
The exp-2 style is easier to read and more consistent across files/folders, reducing confusion when managing many runs.
Faster adoption of Solutions from CLI โก
Users can now launch region counting, security monitoring, and parking workflows directly from terminal commands with less setup friction.
More stable rotated-box training pipelines ๐ฏ
The OBB fix reduces hidden side effects and hard-to-debug training issues, improving trust in advanced detection workflows.
Better operational reliability ๐งช
CI retry hardening helps reduce flaky failures in automation and publishing workflows.
Clearer user guidance and platform onboarding ๐
Docs now better reflect current best paths (especially Ultralytics Platform) and reduce ambiguity in integrations, licensing, and region details.
gt_bboxes modification in RotatedTaskAlignedAssigner by @lmycross in https://github.com/ultralytics/ultralytics/pull/24260ultralytics 8.4.39 Use dashed incremented run paths by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24193Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.38...v8.4.39
Ultralytics v8.4.38 is a stability-focused release that mainly improves model export reliability and consistency across many deployment formats, with
Ultralytics v8.4.38 is a stability-focused release that mainly improves model export reliability and consistency across many deployment formats, with additional fixes for training, tracking, and SAM3 behavior. ๐
"image"), improving compatibility.output_file, output_dir, etc.).lrpc is present.python -m pip (works better in restricted environments).rknn-toolkit2>=2.3.2).--pre) where needed.track_buffer now consistently behaves as a true frame count in ByteTrack/BoT-SORT (no hidden FPS scaling).track_buffer now matches what you configure, reducing surprising track drop behavior at non-30 FPS. ๐ฅtorch and torchvision versions on JetPack 5 Docker by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24199test_engine.py and add OBB/Pose test coverage by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24197trainer.stride assignment for DDP training by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24208annotation.md by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24232axelera-runtime installation command to allow prerelease versions by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24230lrpc attribute before attempting fuse during YOLOE model export by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/24239fuse method by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/24246ultralytics 8.4.38 Unify args naming for standalone export functions by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24120Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.37...v8.4.38
Ultralytics v8.4.37 is a quality + workflow-focused release: the tag PR itself is a version bump, while the main substance is improved hyperparameter
Ultralytics v8.4.37 is a quality + workflow-focused release: the tag PR itself is a version bump, while the main substance is improved hyperparameter tuning (now NDJSON-based for multi-dataset runs), better handling of class imbalance, stronger training reliability, and clearer docs/UI guidance. ๐
[!WARNING] The mAP calculation has been revised in this release. Reported mAP may be slightly lower than in previous Ultralytics versions, but now more closely matches pycocotools' COCOEval.
(Priority note) Current PR #24192 by @glenn-jocher: release tag/version update only (8.4.36 โ 8.4.37) ๐ฆ
Major tuning upgrade (PR #24179 by @Laughing-q) ๐ง
tune_results.ndjson.tune_fitness.png), and MongoDB sync now aligns with local NDJSON logs.Class imbalance support in training (PR #23565 by @ahmet-f-gumustas) โ๏ธ
cls_pw hyperparameter to weight underrepresented classes more during detection training.0.0), so existing behavior stays unchanged unless enabled.Training stability + robustness fixes ๐ก๏ธ
safe_download path handling) (PR #24185 by @glenn-jocher).Evaluation and CI reliability improvements โ
compute_ap precision edge-case fix for more robust AP calculation (PR #24175 by @Laughing-q).Cleaner distributed training logs (PR #24177 by @Laughing-q) ๐งน
Documentation and platform UX improvements ๐
.load() weights in segment/OBB docs.cls_pw can improve rare-class learning without changing your whole pipeline. ๐ฏcompute_ap by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24175Dockerfile-nvidia-arm64 by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24181ultralytics 8.4.37 NDJSON-based multidataset hyperparameter tuning by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24179ultralytics 8.4.37 NDJSON-based multidataset hyperparameter tuning by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24192Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.36...v8.4.37
Ultralytics v8.4.36 is a stability-focused release that fixes an important training regression for checkpoint-based workflows (especially Ultralytics
Ultralytics v8.4.36 is a stability-focused release that fixes an important training regression for checkpoint-based workflows (especially Ultralytics Platform/HUB usage), plus several documentation clarifications for Platform, Explorer, and Jetson guides. โ
๐ง Critical training fix in Model.train() (PR #24167 by @glenn-jocher)
.pt model is already loaded, training reuses that loaded model directly.trainer.args.model (which may be a non-file identifier in Platform/HUB flows).๐งช Regression coverage added
๐ Platform and docs alignment updates (supporting PRs)
ultralytics>=8.4.35 for integration.>=8.3.12, with guidance to pin 8.3.11 if needed.ultralytics 8.4.36 Fix platform training checkpoint regression by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24167Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.35...v8.4.36
Ultralytics v8.4.35 is a stability-focused release that makes training recovery smarter, dataset caching safer, and inference/runtime behavior more re
Ultralytics v8.4.35 is a stability-focused release that makes training recovery smarter, dataset caching safer, and inference/runtime behavior more reliableโespecially when runs hit NaNs or dataset metadata is inconsistent. ๐๐ก๏ธ
NaN training recovery improved (most important, PR #24154 by @glenn-jocher) ๐
last_good.pt instead of retrying a potentially corrupted last.pt.Detection dataset cache reliability upgrades (PR #24154) ๐๏ธ
Cleaner logs during runs (PR #24154) ๐
Platform: Model not found warnings are throttled to reduce noise.OpenVINO robustness improvements (PR #24156 by @glenn-jocher) โ๏ธ
Training behavior and compatibility fixes
isatty() in console capture wrapper to avoid crashes with some libraries like transformers (PR #24143).Docs and ecosystem updates ๐
Fewer failed long trainings โฑ๏ธ
If your run encounters NaNs, recovery is now more trustworthy, reducing wasted GPU time and repeated crash loops.
Less dataset-debug frustration ๐งช
Better cache validation + clearer corrupt-label messages make it faster to diagnose data issues.
More predictable production behavior ๐ญ
OpenVINO and logging adjustments improve runtime stability on edge/ARM setups and reduce noisy warnings.
Smoother experiment tracking and resuming ๐
W&B resume continuity helps keep metrics in one place, improving experiment history quality.
Low-risk upgrade with practical benefits โ
This release is mostly about reliability and developer experience rather than new model architecturesโgreat for teams running frequent training/inference pipelines.
segment2box and scale_boxes in utils/ops.py by @ahmet-f-gumustas in https://github.com/ultralytics/ultralytics/pull/24127YAML.dump usage in benchmark.py by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24146sahi tiled inference code by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/24133isatty() to _ConsoleCapture stream wrapper by @fcakyon in https://github.com/ultralytics/ultralytics/pull/24143Model.train() for YAML models by @artest08 in https://github.com/ultralytics/ultralytics/pull/23640ultralytics 8.4.35 NaN training recovery and dataset cache improvements by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24154Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.34...v8.4.35
Ultralytics v8.4.34 is a tuning and stability-focused release ๐, led by a major new feature: multi-dataset hyperparameter tuning in one run, plus seve
Ultralytics v8.4.34 is a tuning and stability-focused release ๐, led by a major new feature: multi-dataset hyperparameter tuning in one run, plus several important reliability fixes and broad YOLO26 documentation updates.
๐ง Major feature (PR #24067 by @Laughing-q): Multi-dataset hyperparameter tuning
model.tune() now accepts data as either a single dataset or a list.coco8.yaml + coco8-grayscale.yaml).8.4.34.๐ก๏ธ Training resume stability fix (PR #24085 by @Y-T-G)
exp_avg_sq state in FP32.๐ Thread-safe ONNX export (PR #24092 by @glenn-jocher)
โ๏ธ Robustness fixes in core runtime
AAttn fixed for non-divisible dim/num_heads cases to avoid shape/group crashes (PR #24114 by @ZoomZoneZero).crop_mask() now clamps negative coordinates before cropping for safer segmentation postprocessing (PR #24115 by @Y-T-G).draw_specific_kpts() now respects user-provided keypoint index order and handles missing confidence values safely (PR #24099 by @onuralpszr).๐ Documentation and ecosystem refresh (many PRs)
cuDSS dependency instructions for Torch 2.10.0 (PR #24081 by @lakshanthad).Better real-world tuning quality ๐ฏ
Multi-dataset tuning helps teams optimize one model for mixed or varied data domains (for example, color + grayscale, or multiple data sources), improving generalization and reducing overfitting to a single dataset.
More reliable training and export workflows โ
Resume training is more stable, distributed cleanup is safer, and ONNX export is more dependable in threaded environmentsโespecially useful in production pipelines.
Improved deployment and edge guidance ๐ฑ
Updated YOLO26 Jetson benchmarks and setup docs make edge deployment decisions more current and practical.
Cleaner user experience in docs and platform onboarding โจ
Better Smart Annotation and dataset split guidance can reduce setup friction and speed up annotation/training workflows on the Ultralytics Platform.
cuDSS package to JetPack 6 installation guide by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24081draw_specific_kpts to respect user-specified indices order by @onuralpszr in https://github.com/ultralytics/ultralytics/pull/24099crop_mask before cropping by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/24115num_heads by @ZoomZoneZero in https://github.com/ultralytics/ultralytics/pull/24114ultralytics 8.4.34 Multi-dataset support for hyperparameter tuning by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24067Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.33...v8.4.34
Ultralytics v8.4.33 focuses on a key training reliability fix for end-to-end YOLO workflows, plus improvements to Ray Tune flexibility and CoreML expo
Ultralytics v8.4.33 focuses on a key training reliability fix for end-to-end YOLO workflows, plus improvements to Ray Tune flexibility and CoreML export stability ๐
๐ง Major fix (current PR #24074 by @Laughing-q): Resume-training for end-to-end models now restores loss state correctly
resume_training() to properly reinitialize and sync the modelโs loss criterion when loading checkpoints.8.4.32 to 8.4.33.๐ง Ray Tune upgrades (PR #23946 by @lmycross): More search algorithms supported in YOLO26 tuning
search_alg to model.tune(..., use_ray=True) with options like optuna, hyperopt, bohb, ax, nevergrad, zoopt, random, and more.iterations (clearer API behavior).HyperBandForBOHB) instead of generic defaults.close_mosaic now uses integer sampling).๐ CoreML export fix (PR #24078 by @glenn-jocher): Better detection export with NMS
nms=True.More reliable resumed training โ
If training is interrupted and resumed from a checkpoint, end-to-end models now continue with the correct loss progression instead of partially reset behavior. This is the most important user-facing fix in this release.
Stronger hyperparameter tuning workflows ๐ฏ
YOLO26 users get more control over search strategy in Ray Tune, making large-scale tuning more adaptable to different infrastructure and optimization preferences.
Smoother mobile/Apple deployment ๐ฑ
CoreML detection exports with integrated NMS are more robust, lowering chances of deployment-time surprises.
Bottom line: v8.4.33 is a stability + flexibility releaseโespecially valuable for users resuming long trainings and teams doing advanced automated tuning.
ultralytics 8.4.33 Progressive loss train resume fix by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24074Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.32...v8.4.33
v8.4.32 is mainly an Axelera AI export expansion release ๐โit significantly improves how Ultralytics models (including more tasks) are exported and de
v8.4.32 is mainly an Axelera AI export expansion release ๐โit significantly improves how Ultralytics models (including more tasks) are exported and deployed on Axelera hardware, with supporting docs and usability updates across the Ultralytics ecosystem.
Major (Current PR #23844): Axelera export pipeline refactor and expansion ๐ง โ๏ธ
ultralytics/utils/export/axelera.py.torch2axelera (replacing older ONNX-centered flow), making the pipeline cleaner and easier to maintain.TASK2CALIBRATIONDATA, so exports pick better default calibration datasets automatically.Axelera runtime/backend improvements ๐
axelera-rt / axelera-devkit 1.6.0rc3 path)..axm execution pipeline more directly.New practical examples for deployment ๐๐ฏ
Documentation upgrades (large part of this release) ๐
.tar.gz / .tgz and NDJSON.For developers:
For edge deployment users (Axelera):
For Ultralytics Platform users:
Overall:
ultralytics 8.4.32 Expand Axelera exportable models and tasks by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/23844Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.31...v8.4.32
Ultralytics v8.4.31 is a reliability-focused release that mainly fixes INT8 export calibration for non-square image sizes (the headline change), while
Ultralytics v8.4.31 is a reliability-focused release that mainly fixes INT8 export calibration for non-square image sizes (the headline change), while also improving training stability, export maintainability, and documentation for deployment and dataset workflows ๐
๐ฅ Main update (PR #24028 by @Y-T-G): INT8 calibration now works correctly with non-square imgsz
imgsz=640,480 with int8.LetterBox behavior fixed).๐งฉ Export system refactor (PR #23914 by @onuralpszr)
torchscript, openvino, coreml, ncnn, mnn, paddle, rknn, axelera, etc.).๐ Apple Silicon stability improvement (PR #24038 by @Y-T-G)
๐ฆ Better auto-batch with multi-scale (PR #24051 by @glenn-jocher)
multi_scale is enabled.๐ Docs and usability upgrades
๐ ๏ธ CI and environment robustness
ubuntu-latest and Codecov v6 updates.--no-tty).โ Dataset conversion validation tightening (PR #24031 by @glenn-jocher)
val split (instead of allowing test as substitute).--no-tty flag for edgetpu_compiler installation by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24032Exporter export methods into per-format utility modules by @onuralpszr in https://github.com/ultralytics/ultralytics/pull/23914ubuntu-latest by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24049multi_scale in auto-batch computation by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24051ultralytics 8.4.31 INT8 calibration with non-square imgsz by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/24028Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.30...v8.4.31
Ultralytics v8.4.30 is a focused stability release that fixes and hardens training resume behavior, making interrupted training runs much more reliabl
Ultralytics v8.4.30 is a focused stability release that fixes and hardens training resume behavior, making interrupted training runs much more reliable ๐โ .
trainer.py to correctly restore training arguments from last.pt earlier in the resume flow.data argument instead of failing unexpectedly.imgsz, batch, device, workers, cache, freeze, val, and plots (plus related options).augmentations again when resuming, since they canโt be auto-restored exactly.8.4.29 โ 8.4.30.ultralytics 8.4.30 Fix training resume by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24027Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.29...v8.4.30
Ultralytics v8.4.29 is mainly a training reliability release ๐งโit makes resume=True much safer and clearer, while also adding a helpful new COCO JSON
Ultralytics v8.4.29 is mainly a training reliability release ๐งโit makes resume=True much safer and clearer, while also adding a helpful new COCO JSON training guide and small CI/docs/test maintenance updates.
Major (current PR #24021 by @glenn-jocher): safer training resume flow ๐โ
resume=True now only resumes if the checkpoint truly contains resumable training state (like epoch + optimizer state).imgsz, batch, device, workers, cache, patience, validation flags, etc.) โ๏ธ.8.4.28 to 8.4.29 ๐ฆ.New docs feature (PR #24005 + cleanup in #24022): train directly from COCO JSON ๐
.txt labels.CI benchmark alignment with latest model family (PR #23965) ๐
Stability and maintenance ๐งช
zidane.jpg.onnx, requests).ultralytics 8.4.29 Training resume fixes by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24021Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.28...v8.4.29
Ultralytics v8.4.28 improves training reliability on small datasets by making autobatch smarter, while also strengthening network robustness, backend
Ultralytics v8.4.28 improves training reliability on small datasets by making autobatch smarter, while also strengthening network robustness, backend efficiency, and docs/test stability. ๐
(Most important) Autobatch now respects dataset size ๐ฆ
From PR #24020 by @glenn-jocher: automatic batch-size selection is now capped to the number of training images.
dataset_size through Trainer.auto_batch(), check_train_batch_size(), and autobatch().More reliable dataset/platform networking ๐๐
From PR #24010 by @glenn-jocher:
TensorFlow backend import optimization โก
From PR #24017 by @Y-T-G:
saved_model and pb formats in the TensorFlow backend loader.Test reliability improvement for YOLO26 OBB CI ๐งช
From PR #24011 by @glenn-jocher:
boats.jpg) to a fixed jsDelivr CDN path for more consistent test behavior.Ultralytics Platform docs updated to match current UI ๐
From PR #24014 by @mykolaxboiko:
Better small-dataset training defaults โ
Users training on tiny datasets are less likely to get impractical batch recommendations, reducing setup friction and odd edge-case behavior.
More resilient cloud/data workflows ๐ก๏ธ
Dataset downloads and platform URL resolution should fail less often on temporary network issues, especially in CI or unstable network environments.
Cleaner runtime behavior ๐งน
Conditional TensorFlow imports can reduce startup overhead and avoid avoidable environment-related issues.
Improved developer experience ๐ฉโ๐ป
More stable tests and clearer docs mean smoother onboarding, troubleshooting, and release confidence.
ultralytics 8.4.28 Limit autobatch to dataset size by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24020Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.27...v8.4.28
Ultralytics v8.4.27 focuses on more reliable Ultralytics Platform training control (especially cancellation handling) โ , plus several stability fixes
Ultralytics v8.4.27 focuses on more reliable Ultralytics Platform training control (especially cancellation handling) โ
, plus several stability fixes for data conversion, postprocessing alignment, Paddle compatibility, and Docker runtime updates ๐.
๐ด Priority update (PR #24008 by @glenn-jocher): Improved Platform training integration
๐งฉ COCO conversion robustness (PR #23998 by @raimbekovm)
convert_coco() crashes when annotations are missing or have empty keypoints/segmentation.IndexError.๐ฏ Coordinate/mask alignment fix (PR #23995 by @raimbekovm)
scale_coords() and scale_masks() to match LetterBox behavior.๐ผ Paddle dependency safety pin (PR #23997 by @Laughing-q)
<3.3.0 for export/inference paths to avoid known breakages.๐ณ Docker runtime refresh (PR #23991 by @glenn-jocher)
2.11.0 (CUDA 12.8, cuDNN 9 unchanged).๐ Documentation discoverability (PR #23980 by @raimbekovm)
More dependable Platform workflows ๐ก๏ธ
Fewer training tracking failures and more consistent cancellation behavior in cloud-managed runs on the Ultralytics Platform.
Better training control UX โน๏ธ
Cancel signals are handled more predictably, reducing confusion and wasted compute.
Fewer dataset conversion interruptions ๐ฆ
Users converting imperfect COCO labels are less likely to hit hard crashes.
Cleaner prediction geometry ๐ผ๏ธ
Improved coordinate/mask consistency helps downstream quality for segmentation and pose tasks.
Safer dependency behavior โ๏ธ
Paddle users are protected from problematic 3.3.x versions by default.
Modernized container baseline ๐
Docker users get a newer PyTorch runtime with minimal GPU stack risk.
paddlepaddle<3.3.0 by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23997scale_coords and scale_masks to match LetterBox by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/23995ultralytics 8.4.27 Improved Platform training integration by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24008Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.26...v8.4.27
v8.4.26 focuses on reliability and usability improvements: smarter Platform dataset handling (auto-validation split for NDJSON), more robust Platform
v8.4.26 focuses on reliability and usability improvements: smarter Platform dataset handling (auto-validation split for NDJSON), more robust Platform URL resolution, and an important FP16 SAM inference crash fixโplus CI and docs polish. ๐
โ
Platform NDJSON auto-split (PR #23990, @glenn-jocher)
If a dataset has a train split but no val/test, Ultralytics now automatically creates a small validation split from training data instead of failing immediately.
๐ More reliable Ultralytics Platform URI resolution (PR #23990, @glenn-jocher)
Improved ul://... resolution with:
๐ง FP16 SAM TinyViT inference crash fix (PR #23780, @Edwin-Kevin)
Fixed a half-precision inference error in SAM TinyViT models (like mobile_sam.pt) caused by dtype mismatch in cached tensors.
half=True.โ๏ธ CI simplification and stability updates (mainly PR #23990)
cpu-latest to ubuntu-latesttorch<2.11 until CUDA 13 driver support is ready๐ Platform docs improvements
v0.2.7 via PR #23989 by @glenn-jocherLess friction for dataset conversion ๐ฆ
Users importing NDJSON datasets into YOLO workflows are less likely to hit hard failures when a validation split is missing.
Better reliability in cloud/remote workflows โ๏ธ
Platform URI retries and timeout tuning reduce flaky failures, especially with large datasets or temporary network instability.
More stable FP16 segmentation inference ๐ฏ
Users running SAM TinyViT in half precision on GPU should see fewer runtime dtype crashes and smoother deployment behavior.
Cleaner maintenance pipeline for Ultralytics ๐ ๏ธ
CI changes reduce complexity and improve consistency, helping keep releases stable.
Faster onboarding for new users ๐ฅ
The new Platform tutorial videos make it easier for broad audiences to get started quickly with data, training, and deployment.
ultralytics 8.4.26 Platform NDJSON autosplit by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23990Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.25...v8.4.26
Ultralytics v8.4.25 mainly restores TensorFlow.js export for most users โ , while also improving training speed paths, visualization behavior, box alig
Ultralytics v8.4.25 mainly restores TensorFlow.js export for most users โ
, while also improving training speed paths, visualization behavior, box alignment accuracy, CI reliability, and YOLO26/platform documentation clarity ๐๐.
(Top priority) TF.js export restored for supported systems ๐ง
From PR #23985 by @glenn-jocher:
ydf<0.13.0 (non-ARM64) to avoid a TensorFlow/protobuf conflict.8.4.25.Faster training internals for pose/detection/OBB losses โก
From PRs #23937 and #23966:
Bounding box alignment fix in scale_boxes ๐ฏ
From PR #23967:
LetterBox rounding.Visualization improvement: confidence can be shown without class labels ๐
From PR #23951:
show_conf=True now works independently of show_labels.Docs and platform guidance expanded (especially YOLO26 end-to-end detection) ๐
From PRs #23947, #23974, #23975, #23931:
References sections).CI and runner infrastructure updates ๐งช
From PR #23875 and #23974:
cpu-latest for better consistency/speed.2.333.0.Prediction telemetry enhancement ๐ก
From PR #23948:
Big win for web deployment ๐
Teams exporting to TF.js can now resume browser/JavaScript workflows in most supported environments.
Fewer export headaches ๐งฉ
Dependency pinning reduces breakage from upstream package mismatches, making exports more dependable.
Potentially faster training iterations โฑ๏ธ
Vectorized loss preprocessing should reduce Python overhead and improve throughput, especially for larger batches.
Better output quality and trust in predictions โ
The box-scaling fix helps prevent annoying small coordinate offsets that can affect visual quality and downstream logic.
Improved usability for debugging and demos ๐ ๏ธ
Confidence-only display and richer backend telemetry make model behavior easier to inspect.
Smoother onboarding for YOLO26 + Platform users ๐
Updated docs lower migration friction and make it easier for both new and advanced users to train/deploy via the Ultralytics Platform.
cpu-latest runner for faster CI tests by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23875detect/obb loss calculation by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23966References docstring sections rendering incorrectly in API docs by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/23931scale_boxes to match LetterBox rounding by @a17sol in https://github.com/ultralytics/ultralytics/pull/23967ultralytics 8.4.25 TensorFlow.js fix pin ydf<0.13.0 by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23985Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.24...v8.4.25
Ultralytics `v8.4.24` improves training reliability and clarity on Ultralytics Platform ๐ฏ, while also aligning tuning defaults and docs with YOLO26 be
Ultralytics v8.4.24 improves training reliability and clarity on Ultralytics Platform ๐ฏ, while also aligning tuning defaults and docs with YOLO26 best practices ๐.
(Most important) Better Platform training error surfacing ๐ ๏ธ
Version bump to 8.4.24 ๐
8.4.23 to 8.4.24.Ray Tune search space updated to match modern YOLO26 ranges ๐
lr0, momentum, box, cls, scale).dfl and close_mosaic.YOLO26 naming adopted in Streamlit inference selector ๐
yolo11* to yolo26* in the Streamlit solution UI.Rockchip RKNN docs refreshed with YOLO26 benchmarks ๐
TF.js benchmarking disabled (temporary safeguard) โ ๏ธ
Platform docs and UX docs improvements ๐งพ
Faster troubleshooting for Platform users โ
More precise error messages reduce guesswork and support time when training jobs fail.
Cleaner failure behavior ๐งน
Disabling callbacks after registration failure prevents repeated warning spam and gives a more stable user experience.
Better model tuning outcomes ๐ฏ
Updated Ray Tune ranges help users avoid outdated search spaces that could hurt accuracy, especially with YOLO26 workflows.
Stronger consistency across product and docs ๐
YOLO26 naming, benchmark updates, and docs alignment make it easier for users to follow current recommended paths.
Safer defaults for problematic integrations ๐ก๏ธ
TF.js benchmark disablement avoids known dependency traps until upstream compatibility improves.
UTM enabled banner redirect by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/23952YOLO11 โ YOLO26 by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/23954ultralytics 8.4.24 Improve Platform train error surfacing by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23957Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.23...v8.4.24
Ultralytics v8.4.23 is mainly a big under-the-hood inference upgrade ๐: AutoBackend was fully redesigned into modular backend classes, making multi-fo
Ultralytics v8.4.23 is mainly a big under-the-hood inference upgrade ๐: AutoBackend was fully redesigned into modular backend classes, making multi-format model deployment cleaner, easier to maintain, and more reliable across platforms.
Major architecture refactor (PR #23790 by @Laughing-q) ๐งฉ
AutoBackend moved from one large file to a modular backend system (ultralytics/nn/backends/).BaseBackend interface to standardize model loading, metadata handling, and forward inference behavior.AutoBackend now uses a single format route + backend map instead of many backend boolean flags.channels, format, warmup paths, etc.).docs/en/reference/nn/backends/.Pose dataset conversion improvement (PR #23921 by @glenn-jocher) ๐คธ
kpt_shape automatically (when possible), instead of failing immediately.Docs correctness and usability fixes ๐
cfg.md defaults for plots and save to True (PR #23917).Docs/site maintenance and CI updates ๐ ๏ธ
print() to centralized LOGGER in docs reference builder (PR #23895).For users deploying models in different formats ๐
This release should improve consistency and stability of inference behavior across backends, with fewer backend-specific surprises.
For developers and contributors ๐ฉโ๐ป
The modular backend design is a big win: easier to extend, debug, and maintain than a monolithic AutoBackend.
For pose dataset workflows ๐ฆ
NDJSON conversion is more forgiving and practical, reducing friction when metadata is incomplete.
For documentation trustworthiness โ
Multiple fixes make docs more accurate and navigable, reducing confusion around defaults and TensorRT calibration behavior.
Overall, v8.4.23 is a foundational engineering release: not a flashy model change, but a high-impact internal upgrade that strengthens the reliability of the Ultralytics inference stack over time.
ultralytics 8.4.23 Refactor AutoBackend into modular per-backend classes by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23790Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.22...v8.4.23
Ultralytics v8.4.22 focuses on better hardware support and reliability, led by a key new feature: basic Huawei Ascend NPU device support in select_dev
Ultralytics v8.4.22 focuses on better hardware support and reliability, led by a key new feature: basic Huawei Ascend NPU device support in select_device ๐.
๐ฅ Major (Current PR #23902 by @GiantAxeWhy): Huawei Ascend NPU parsing added
device=npu or device=npu:0 in Ultralytics.torch_npu installation and NPU availability.npu:0,1 for now.๐ง Multi-GPU training fix (DDP + Albumentations)
๐ฆ Export stability improvements
end2end for incompatible TensorRT versions (<=10.3.0) to prevent known build failures.๐ณ Docker and CI environment updates
UV_BREAK_SYSTEM_PACKAGES=1 across Dockerfiles for more consistent installs.Dockerfile-runner-cpu and broader CI runner improvements (CPU labels, tooling like sudo, nodejs, npm, gpg).๐ ๏ธ Reliability/bug fixes
๐ Docs and dataset additions
callable type hint to Callable in BasePredictor.add_callback() by @ahmet-f-gumustas in https://github.com/ultralytics/ultralytics/pull/23836task attribute from metrics classes by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/238352026.0.0 from Conda CI by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23839end2end for TensorRT INT8 exports with tensorrt<=10.3.0 by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/23872gpg package for Dockerfile-runner-cpu by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23878dota128 dataset by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23885ModuleNotFoundError in classify caching check to prevent numpy version conflict by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23892export-table.md by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23898batch fix by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23899black dep and fix publish commit message by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/23896cpu-latest by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23901cpu-latest runner by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23904ultralytics 8.4.22 Huawei Ascend NPU device parsing in select_device by @GiantAxeWhy in https://github.com/ultralytics/ultralytics/pull/23902Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.21...v8.4.22
Ultralytics v8.4.21 improves reliability for Rockchip RKNN exports (main change) and also adds better tuning isolation, expanded C++ pose example supp
Ultralytics v8.4.21 improves reliability for Rockchip RKNN exports (main change) and also adds better tuning isolation, expanded C++ pose example support, and clearer YOLO26 optimizer guidance. ๐
โ Main priority (PR #23806 by @Laughing-q): RKNN export path fix
Path(...).stem) instead of fragile string replacement.๐งช Ray Tune reliability improvement (PR #23793 by @Y-T-G)
trainer = None) before running.๐ง ONNXRuntime C++ example gains pose support for YOLOv8-family pose models (PR #23786 by @chendao12138)
๐ YOLO26 training docs improved around MuSGD (PRs #23800, #23804 by @deriiinjv and @monkeyjack123)
optimizer=auto.For deployment users on Rockchip ๐ฆ
RKNN exports should now fail less often due to naming/path edge cases, making deployment workflows more dependable.
For ML engineers tuning models ๐
Ray Tune trials are more isolated and reproducible, reducing hard-to-debug inconsistencies.
For C++/edge developers โ๏ธ
Easier starting point for pose inference in ONNXRuntime C++ projects using YOLOv8-style pose models.
For YOLO26 trainers ๐ง
Optimizer behavior is easier to understand, helping users make better training choices faster.
ultralytics 8.4.21 Fix Rockchip RKNN export path by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23806Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.20...v8.4.21
Ultralytics v8.4.20 is a stability-and-usability release focused on cleaner hyperparameter tuning, more reliable deployment/export workflows, and impr
Ultralytics v8.4.20 is a stability-and-usability release focused on cleaner hyperparameter tuning, more reliable deployment/export workflows, and improved docs for both YOLO models and the Ultralytics Platform ๐
(Most important) Ray Tune cleanup in current PR #23772 ๐งน
tuner_callbacks and dropped built-in W&B callback wiring from RunConfig in tuning.8.4.19 โ 8.4.20.RKNN export reliability improved (#23802) ๐ฆ
onnx<1.19.0) and enforced ONNX opset cap (<=19) for RKNN conversion.FastSAM prompt accuracy fix (#23766) ๐ฏ
ByteTracker consistency update (#23771) ๐ ๏ธ
fuse_score=True), aligning behavior across tracking stages.Better YAML error messages (#23767) โ
Jetson/JetPack 6 stack refresh (#23788 + #23801) ๐ค
torch 2.10 + torchvision 0.25.Docs and platform improvements ๐
More robust tuning workflows โ๏ธ
Fewer deployment surprises ๐
Higher output quality in segmentation/tracking ๐
Smoother setup for modern environments ๐ง
Better onboarding and reproducibility ๐ง
sam-3.md speed comparison by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23782torch 2.10 by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/23788torch and torchvision compatibility table to latest by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/23801ultralytics 8.4.20 Remove redundant hardcoded tuner_callbacks by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23772Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.19...v8.4.20
Ultralytics v8.4.19 focuses on much more reliable Ultralytics Platform training sync (especially model tracking via model_id), plus a few quality impr
Ultralytics v8.4.19 focuses on much more reliable Ultralytics Platform training sync (especially model tracking via model_id), plus a few quality improvements for SAM outputs, lightweight model stability, and clearer YOLO26 end-to-end docs ๐
๐ด Most important (current PR #23761 by @glenn-jocher): Platform training model_id fix
model_id during model uploads and training events.trainer.platform context (instead of scattered trainer fields), including:
model_id๐ง SAM prediction cleanup (#23751 by @Laughing-q)
SAM3SemanticPredictor postprocessing and feature-inference paths.๐ก๏ธ PSA attention edge-case fix (#23758 by @Y-T-G)
PSABlock for very small channel configs.๐ Docs clarification for end-to-end models (#23720 by @raimbekovm)
max_det and agnostic_nms are supported directly.end2end=False is mainly for enabling traditional iou-based NMS behavior.โ๏ธ CI maintenance
For Ultralytics Platform users: โ
Training runs should now be more reliable to track end-to-end, with fewer mismatches between uploaded checkpoints and the correct model session. This is the biggest practical improvement in this release.
For production and team workflows: ๐ก
Better callback state management means cleaner event handling, better cancellation behavior, and improved confidence that results and artifacts land in the right place.
For segmentation users (SAM): ๐ฏ
Cleaner predictions with fewer duplicate overlaps can improve downstream usability and visual quality.
For custom/small models: ๐งฑ
Fewer architecture edge-case failures when using very small widths or low channel counts.
For all users reading docs: ๐
Clearer expectations around end-to-end inference/validation args in YOLO26 and YOLOv10 reduce confusion and setup mistakes.
max_det and agnostic_nms support in end2end mode by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/23720SAM3SemanticPredictor to eliminate overlapping boxes by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23751num_heads by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23758ultralytics 8.4.19 Platform training pass model ID fix by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23761Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.18...v8.4.19
Object tracking notebook updated from deprecated Annotator.seg_bbox() to modern Results.plot(color_mode="instance").
Ultralytics v8.4.18 is a reliability-focused release that improves downloads and dependency installs, while also adding stronger ExecuTorch export support (including Pose) for smoother edge/mobile deployment ๐.
safe_download() now handles URLs with spaces by encoding spaces as %20 (PR #23736 by @glenn-jocher).
ultralytics/utils/export/executorch.py with reusable torch2executorch() and executorch_wrapper().git+ requirements with version constraints (PR #23737 by @fcakyon).
Annotator.seg_bbox() to modern Results.plot(color_mode="instance").safe_download() fix is small but high-impact: fewer random failures when fetching models/assets from imperfect URLs.executorch.py by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/23734Annotator.seg_bbox in object tracking notebook by @ahmet-f-gumustas in https://github.com/ultralytics/ultralytics/pull/23745ultralytics 8.4.18 safe_download() URLs with spaces by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23736Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.17...v8.4.18
Ultralytics v8.4.17 makes NDJSON dataset conversions *resplit-friendly*โreusing existing images, cleaning stale labels, and avoiding unnecessary downl
Ultralytics v8.4.17 makes NDJSON dataset conversions resplit-friendlyโreusing existing images, cleaning stale labels, and avoiding unnecessary downloads for faster iteration ๐๐ฆ
train/val/test splits.labels/ directory before reconversion to prevent stale annotations.data.yaml to skip reconversion when nothing meaningful changed ๐งพ๐end2end mode for EdgeTPU exports (and logs a warning), aligning EdgeTPU with other limited backends that donโt support required ops.nncf requirements to reduce install/export conflicts across Torch versions.end2end behavior, and OpenVINO INT8 export setups are smoother across PyTorch versions.nncf<3 for PyTorch 2.2 and below by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23726end2end for EdgeTPU by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23724ultralytics 8.4.17 NDJSON dataset re-split support by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23735Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.16...v8.4.17
Ultralytics 8.4.16 mainly improves Windows โ Linux/macOS `.pt` model portability by fixing pathlib pickle issues, with a small docs update for HEIC/HE
Ultralytics 8.4.16 mainly improves Windows โ Linux/macOS .pt model portability by fixing pathlib pickle issues, with a small docs update for HEIC/HEIF image support ๐งฉ๐พ๐ธ
.pt loading fix (PR #23725 by @glenn-jocher):
torch_safe_load() to remap pathlib.WindowsPath โ pathlib.PosixPath during unpickling, preventing common load failures when models are created on one OS and loaded on another.model.pt_path is now stored as a plain string (str(weight)), not a Path object (applies in general checkpoint loading and YOLO NAS model wrapper code).8.4.15 โ 8.4.16.pi-heif (auto-installed on first use) and AVIF is supported natively by Pillow..heif is explicitly listed among supported image formats..pt weights between teammates or CI systems running different operating systems.model.pt_path (strings behave consistently across platforms and serialization)..heif support visibility (less dependency confusion).ultralytics 8.4.16 Windows<>Linux model compatibility fix by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23725Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.15...v8.4.16
Ultralytics v8.4.15 improves real-world image ingestion (adds HEIC/HEIF + HEIF support with lazy decoding + better EXIF handling) and includes several
Ultralytics v8.4.15 improves real-world image ingestion (adds HEIC/HEIF + HEIF support with lazy decoding + better EXIF handling) and includes several quality fixes for metrics, exports, and docs ๐ผ๏ธโ๏ธโ
ultralytics.utils.patches.image_open and monkey-patched PIL.Image.open to lazily enable HEIC/HEIF decoding via pi-heif only when needed (i.e., on first decode failure) โฑ๏ธ.heif (in addition to .heic) โ
.ttf fonts from the Ultralytics user config directory for stronger multilingual rendering.ImageOps.exif_transpose() when loading images from lists of paths/URLs, reducing โsideways phone photoโ issues.match_predictions) to maximize IoU during assignment (previously could choose the worst matches), which can affect TP/FP classification and mAP when use_scipy=True.Results.save() ๐พ๐
create_dir parameter (default True) to control auto-creation of parent directories when saving annotated outputs.torch>=1.13 on Linux.Results.save(create_dir=True) makes saving predictions into new folders simpler (fewer โdirectory not foundโ errors).If youโre deploying/training with mixed photo sources (phones, HEIC libraries, multilingual labels), 8.4.15 is a practical upgrade ๐ ๏ธ๐
Results.save() with pathlib and optional directory creation by @ShuaiLYU in https://github.com/ultralytics/ultralytics/pull/23592match_predictions to maximize IoU by @Mr-Neutr0n in https://github.com/ultralytics/ultralytics/pull/23634metadata.distribution by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23641build_reference.py by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23666CustomSaveTrainer example in custom trainer guide by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/23668ultralytics 8.4.15 HEIC/HEIF image support by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23714Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.14...v8.4.15
Ultralytics 8.4.14 adds Ultralytics Platform โCancel trainingโ support so you can stop runs quickly *and still keep/upload partial results* โ๏ธ๐ค
Ultralytics 8.4.14 adds Ultralytics Platform โCancel trainingโ support so you can stop runs quickly and still keep/upload partial results โ๏ธ๐ค
trainer.stop=True when cancelled=true.trainer._platform_cancelled and logs clear messages.self.stop is set, allowing external stops (like Platform cancellation) to take effect sooner.rle_loss to zero to prevent loss from going negative and destabilizing training (helps avoid mAP dropping across epochs).segment2box() now excludes points exactly on the image border after clipping, avoiding boxes incorrectly snapping to edges (better box regression + mask quality).TypeError when fitness is present but None during tuning (safer/cleaner tuning runs).model.fuse() ๐
If you train via the Ultralytics Platform, this release is especially impactful due to the new cancellation behavior ๐.
segment2box boundary condition for edge-snapped segment points by @Mr-Neutr0n in https://github.com/ultralytics/ultralytics/pull/23602model.fuse() by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/23601ultralytics 8.4.14 Platform training cancel feature by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23614Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.13...v8.4.14
Ultralytics v8.4.13 makes training more resilient by automatically recovering from CUDA out-of-memory (OOM) errors during the first epoch by retrying
Ultralytics v8.4.13 makes training more resilient by automatically recovering from CUDA out-of-memory (OOM) errors during the first epoch by retrying with a smaller batch size ๐๐ง ๐ฅ
_build_train_pipeline() method to rebuild loaders/optimizer/scheduler when batch size changes (used by the new OOM recovery flow).simplify=True is now forced to avoid a known runtime issue (TopK-related error in some ONNX Runtime versions).is_dgx() detection and uses it (along with Jetson JetPack 7) to trigger a TensorRT version check/reinstall path for better export reliability on those systems.setuptools<=81.0.0 to avoid breakages introduced by newer setuptools versions (notably affecting tensorflow.js export tooling).yolo26n.pt) and mention ExecuTorch/Axelera export options (documentation signposting).protobuf in the RT-DETR ONNX Runtime Python example.simplify=True for OBB export with NMS by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23580setuptools version by @Burhan-Q in https://github.com/ultralytics/ultralytics/pull/23589ultralytics 8.4.13 Retry smaller batch on training CUDA OOM by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23590Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.12...v8.4.13
Ultralytics v8.4.12 streamlines YOLOE-26 class/text-prompt handling to avoid redundant updates, while improving multispectral (grayscale) training rel
Ultralytics v8.4.12 streamlines YOLOE-26 class/text-prompt handling to avoid redundant updates, while improving multispectral (grayscale) training reliability and multi-GPU auto-selection ๐ง โก๏ธ๐ฅ๏ธ
set_classes() when prompts already match ๐ง โก๏ธ
ultralytics/models/yolo/model.py to avoid re-running set_classes() if model.names already matches the requested classes.get_text_pe(classes)) when a real class change is needed.self.predictor.model.names = self.model.names.ultralytics/utils/autodevice.py).flags=self.cv2_flag), preventing cached .npy files from silently changing input format (ultralytics/data/base.py).model.yaml["channels"]) instead of assuming 3-channel RGB (ultralytics/utils/autobatch.py).coco8-grayscale.yaml, uses cache="disk" in grayscale tests, and cleans up cached .npy files to prevent flaky test interactions.yolo26n.onnx, yolo26n_openvino_model, etc.).ultralytics/utils/metrics.py).deque initialization in BoT-SORT tracker (ultralytics/trackers/bot_sort.py).wandb for nvidia-ml-py in the Dockerfile to better support NVIDIA GPU querying/metrics in container builds.cache="disk" and using AutoBatch on non-3-channel inputs is now more correct and consistentโreducing mismatches, mis-profiling, and possible crashes.*.npy files in grayscale tests by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23554ultralytics 8.4.12 YOLOE-26 skip set_classes if text prompts already set by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23552Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.11...v8.4.12
Ultralytics v8.4.11 makes Ultralytics Platform training uploads far more reliable by adding retryable model uploads + metrics posting, plus a new reus
Ultralytics v8.4.11 makes Ultralytics Platform training uploads far more reliable by adding retryable model uploads + metrics posting, plus a new reusable upload helper and docs ๐๐ถ
ultralytics/utils/uploads.py with safe_upload() that supports retries, timeouts, and optional progress bars โณ๐ฆ_send() now retries transient failures, uses a longer timeout (30s), and does not retry most 4xx client errors (except common transient ones like timeout/rate-limit) ๐ก๏ธ_upload_model() now retries signed-URL retrieval and uses safe_upload() for the actual upload to cloud storage โ๏ธgcsPath) as modelPath (instead of accidentally sending a local filesystem path) โ
C:\... or /home/....ultralytics 8.4.11 Platform model uploads retries by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23538Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.10...v8.4.11
Ultralytics 8.4.10 improves YOLOE-26 out-of-the-box predictions by defaulting to class-agnostic NMS, plus several export, OpenVINO, HUB, SAM, and docs
Ultralytics 8.4.10 improves YOLOE-26 out-of-the-box predictions by defaulting to class-agnostic NMS, plus several export, OpenVINO, HUB, SAM, and docs reliability upgrades ๐๐ง
agnostic_nms=True, reducing overlapping duplicate boxes across different classes (set in ultralytics/models/yolo/model.py).8.4.9 โ 8.4.10.agnostic_nms (previously the argument existed but wasnโt applied in the CoreML NMS pipeline).check_tensorrt() helper and used it in export + tests to reduce missing-dependency failures; also adds special handling to pin compatible TensorRT on Jetson JetPack 7 / CUDA 13 ARM for RT-DETR exports.UnboundLocalError risk by making the inference-mode check safe when dynamic is false.HUBModelError (instead of generic ValueError or silently returning None) when loading/creating HUB models fails.names are generated (especially for single-object outputs and โvisualโ naming mode).segments=None during zero-area filtering, and adds a helpful Instances.__repr__() for easier debugging.model.set_classes(["person", "bus"]) (no manual text embedding handling), ExecuTorch docs updated with YOLO26 benchmarks, and Benchmark docs video link refreshed.agnostic_nms=False.agnostic_nms is enabledโfewer surprises when deploying to Apple devices.You can update with: pip install -U ultralytics โฌ๏ธโ
test_export_engine_matrix by @onuralpszr in https://github.com/ultralytics/ultralytics/pull/23496autobackend.py when using OpenVINO by @zboszor in https://github.com/ultralytics/ultralytics/pull/23505tensorrt on CUDA 13 ARM to 10.15.x to fix a bug with RT-DETR exports by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/23499executorch doc with YOLO26 benchmarks on Raspberry Pi 5 by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/23500remove_zero_area_boxes instance when segment is None by @Bovey0809 in https://github.com/ultralytics/ultralytics/pull/23495ultralytics 8.4.10 YOLOE-26 default agnostic_nms=True by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23525Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.9...v8.4.10
Ultralytics v8.4.9 improves segmentation CopyPaste augmentation reliability (especially for grayscale/hyperspectral-style single-channel inputs) and s
Ultralytics v8.4.9 improves segmentation CopyPaste augmentation reliability (especially for grayscale/hyperspectral-style single-channel inputs) and strengthens the broader export/training ecosystem with better ExecuTorch + Torch support ๐๐งฉ
ultralytics/data/augment.py:
1 (instead of (1,1,1)), avoiding channel mismatches.8.4.8 โ 8.4.9 ๐ขul://... URIs (instead of silently reusing a cached .ndjson) ๐งนโฌ๏ธ<2.10 PyTorch upper bound in dependencies (Windows still excludes torch==2.4.0) ๐check_executorch_requirements() to reduce platform-specific install failures ๐งฉcompile=True, and stride calculation is simplified for more predictable behavior ๐ง ๐ฅ.ndjson metadata helps ensure you train/evaluate on the latest Ultralytics-hosted dataset state when using ul://... ๐๐งชcompile=True usage: better test coverage helps catch regressions for users relying on PyTorch compile for potential speedups ๐ง ๐ ๏ธchecks.py and dist.py by @ahmet-f-gumustas in https://github.com/ultralytics/ultralytics/pull/23485compile by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23479ultralytics 8.4.9 Hyperspectral CopyPaste augmentation by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23471Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.8...v8.4.9
Ultralytics v8.4.8 makes end-to-end (NMS-free) YOLO26/YOLOv10 inference actually honor `max_det` and `agnostic_nms`, giving you predictable control ov
Ultralytics v8.4.8 makes end-to-end (NMS-free) YOLO26/YOLOv10 inference actually honor max_det and agnostic_nms, giving you predictable control over how many detections you get and how classes are handled โ
๐
max_det + agnostic_nms (PR #23396 by @Y-T-G) ๐๏ธ
set_head_attr(**kwargs) helper to set head/last-layer attributes like end2end, max_det, agnostic_nms ๐งฉend2end=True, predict and val now push max_det + agnostic_nms into the model head, so these flags actually take effect โ๏ธagnostic_nms support inside the Detect head (affects top-k selection logic used in end-to-end mode) ๐ฏagnostic_nms into the exported head for better parity between Python and exported models ๐ฆend2end controls across CLI/docs ๐
end2end to config/defaults and docs for predict/val/export args ๐งพend2end=True/False โ
๐งชend2end in metadata ๐งฐPath) for multi-source data configs ๐๏ธmax_det now reliably limits outputs in end2end mode (no more โwhy didnโt it cap?โ confusion).agnostic_nms becomes meaningful in end2end workflows, helpful when classes overlap heavily or you want โbest boxes regardless of classโ.If youโre using YOLO26 (the recommended model family) in end-to-end mode, this release is a practical quality-of-life upgrade. ๐๐
end2end mode by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23333coco12-formats predict tests by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23374select_candidates_in_gts by @PT0X0E in https://github.com/ultralytics/ultralytics/pull/23369clip package by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23368stride_val type issue in STAL by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23390rknn/executorch/paddle/imx formats by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23312torch.no_grad for torch==1.9.0 to resolve training issue by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23395close_mosaic as integer in best_hyperparameters.yaml by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23435rect=True by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23419ultralytics 8.4.8 Support max_det and agnostic_nms for end2end by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23396Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.7...v8.4.8
Ultralytics v8.4.7 adds AVIF training support and a new COCO12-Formats mini-dataset to continuously verify that *all supported image types* load corre
Ultralytics v8.4.7 adds AVIF training support and a new COCO12-Formats mini-dataset to continuously verify that all supported image types load correctly end-to-end (especially in CI) ๐งช๐ผ๏ธ
IMG_FORMATS expanded to include avif_imread_pil) for cases where OpenCV canโt decode AVIF/HEICgenerate_coco12_formats.py) to build the set for testing/validationruns/ by default for relative projects + improves W&B traceability ๐๏ธruns/ by default and improve W&B run traceability by @artest08 in https://github.com/ultralytics/ultralytics/pull/23026multi_scale range sampling and clarify docs by @artest08 in https://github.com/ultralytics/ultralytics/pull/23284ultralytics 8.4.7 AVIF training and new COCO12-Formats dataset by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23358Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.6...v8.4.7
Ultralytics v8.4.6 is a reliability-focused release that fixes a multi-GPU DDP training crash and improves Ultralytics HUB/Platform dataset URI handli
Ultralytics v8.4.6 is a reliability-focused release that fixes a multi-GPU DDP training crash and improves Ultralytics HUB/Platform dataset URI handling, plus several documentation upgrades ๐๐ ๏ธ
PosixPath import to the generated temporary DDP training script (ultralytics/utils/dist.py).NameError: name 'PosixPath' is not defined when model paths are passed as PosixPath objects (common on Linux) during Distributed Data Parallel training ๐งฉ๐งฏul://... dataset URLs now allow a much longer server-side preparation time (NDJSON generation) to avoid premature timeouts ๐ข๐ฆ# type: comments to inline type annotations in BYTETracker (no behavior change) ๐ง ๐งyolo26n.pt passed as a Path/PosixPath), this release removes that blockerโless downtime, fewer confusing crashes.ul://... datasets from Ultralytics HUB/Platform ๐โ
For more context, see the v8.4.6 release tag on GitHub.
byte_tracker.py by @ahmet-f-gumustas in https://github.com/ultralytics/ultralytics/pull/23304ultralytics 8.4.6 Add missing PosixPath import in DDP train file gen by @pfabreu in https://github.com/ultralytics/ultralytics/pull/23301Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.5...v8.4.6
Ultralytics 8.4.5 makes 2D pose `Results.summary()` safer and more compatible by correctly handling keypoints with or without visibility flags ๐งโโ๏ธโ
Ultralytics 8.4.5 makes 2D pose Results.summary() safer and more compatible by correctly handling keypoints with or without visibility flags ๐งโโ๏ธโ
Results.summary() checks kpt.has_visible and only outputs "visible" when it exists (otherwise returns just "x" and "y"), preventing crashes in mixed keypoint formats.8.4.4 โ 8.4.5.hub-sdk extra from pyproject.toml (simplifies installs for users who donโt need it) ๐ฆโ๏ธ.Results.summary() wonโt fail when datasets/models omit visibility/confidence per keypoint (common in non-COCO formats).ultralytics 8.4.5 2D Pose Result.summary() support by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23293Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.4...v8.4.5
Ultralytics v8.4.4 refines MuSGD training behavior (better scaling for short vs. long runs) and includes several quality-of-life fixes for exports, se
Ultralytics v8.4.4 refines MuSGD training behavior (better scaling for short vs. long runs) and includes several quality-of-life fixes for exports, segmentation outputs, logging, and filesystem side effects ๐๐ง
๐ง MuSGD optimizer scaling update (PR #23279 by @Laughing-q)
MuSGD scale factors are now chosen more appropriately based on total training iterations:
(muon=0.1, sgd=1.0)(muon=0.5, sgd=0.5)ultralytics/engine/trainer.py.๐ท Sony IMX500 export compatibility improved (PR #23266 by @Laughing-q)
๐งฉ Segmentation proto/output handling fixed across backends (PR #23241 by @Laughing-q)
๐ No more empty run folders when save=False (PR #23268 by @Y-T-G)
get_save_dir() no longer auto-creates directories while computing a unique run pathโreduces unwanted โpredictโ folders appearing on disk ๐งน
๐ TensorBoard OBB graph logging made safer (PR #23276 by @Y-T-G)
TensorBoard graph logging now uses smart_inference_mode() to avoid gradient trackingโoften less memory/overhead and fewer callback edge cases โ๏ธ
๐ Docs branding/link refresh (PR #23283 by @glenn-jocher)
Multiple repo/docs links now point to the Ultralytics Platform entry point (and wording updated accordingly) ๐งญ
๐ More consistent training dynamics with MuSGD
If you use MuSGD (muon/sgd), you may see improved stability and convergence depending on whether your run is short or longโespecially around the 10k-iteration threshold ๐ง ๐
โ
Fewer export surprises (IMX500 + segmentation exports)
IMX500 exports should fail less often due to minor layer-count differences, and segmentation outputs should be more consistent across PyTorch/exported/TF backends ๐ฆ๐งฉ
๐งน Cleaner local runs and tooling behavior
Computing a save directory no longer creates folders prematurely, which is especially helpful for dry runs, scripts, and save=False predictions ๐โจ
โก More robust logging during training
TensorBoard graph logging becomes less intrusive and more reliable (particularly for OBB setups) ๐๐ก๏ธ
YOLOv8/YOLO11 IMX export by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23266mkdir by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23268YOLO26n for benchmark tests by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23241ultralytics 8.4.4 MuSGD optimizer scale factor update by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23279Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.3...v8.4.4
Ultralytics v8.4.3 boosts Ultralytics Platform NDJSON dataset downloads/conversion speed ๐, improves training metric correctness ๐ง , and refreshes defa
Ultralytics v8.4.3 boosts Ultralytics Platform NDJSON dataset downloads/conversion speed ๐, improves training metric correctness ๐ง , and refreshes defaults/docs around YOLO26 ๐.
aiohttp only when NDJSON conversion is used (faster startup, fewer unnecessary deps) ๐ฆ8.4.2 โ 8.4.3 ๐ULTRALYTICS_PLATFORM_URL to point callbacks/links to staging or local environments ๐งชYOLO()/CLI fallback model becomes yolo26n.pt and many docs/examples follow suit โ
rle_loss when the model actually supports it (avoids confusing metrics) ๐งพResults.summary() entries โ PR #23218 by @xusuyong
ULTRALYTICS_PLATFORM_URL makes it much easier to test integrations without patching code.warmup_lr by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23234IMX inference wrapper by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23235README.md metrics table by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23238yolo26n in docs and examples by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23242ultralytics 8.4.3 Faster Platform NDJSON downloads by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23257Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.2...v8.4.3
Ultralytics v8.4.2 mainly fixes Ultralytics Platform (`ul://` / NDJSON) classification training by converting datasets into the correct on-disk layout
Ultralytics v8.4.2 mainly fixes Ultralytics Platform (ul:// / NDJSON) classification training by converting datasets into the correct on-disk layout and validating them properly, plus a few quality-of-life and docs/CI tweaks ๐ ๏ธโ
task == "classify" and creates an ImageNet-style folder layout: {split}/{class_name}/... (instead of images/ + labels/ used for detection-style tasks).data.yaml, images/{split}/, labels/{split}/).Trainer.get_dataset() now always resolves ul:// / .ndjson into a local dataset first, then runs the correct dataset validation for the task.Results.summary() now returns top-5 (PR #23215, @glenn-jocher) ๐ง ๐
summary() is intended to return top-5 classes + confidences instead of only top-1.save_dir reliably (PR #23191, @Y-T-G) ๐๐ง
save_dir is now treated as an allowed override/config key, so setting output directories via CLI/Python overrides is more consistent.ul://...) or .ndjson exports, this release prevents failures caused by the wrong dataset folder structure and ensures the trainer checks the right dataset type.Results.summary() output in this specific tag) โ ๏ธsave_dir without it being ignored or flagged.โ If youโre using Ultralytics Platform + classification, v8.4.2 is a โmust updateโ.
save_dir from argument validation by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23191ultralytics 8.4.2 Fix Platform Classify training by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23217Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.1...v8.4.2
Your coding agent can read these notes before it upgrades. Set up the MCP server โ