Ultralytics v8.3.203 — safer AMP resumes, sturdier exports, smoother compatibility 

Quick summary
- Mixed‑precision (AMP) resumes are now more reliable, ONNX export is more future‑proof, and export requirements are clearer for OpenVINO/CoreML. This release tightens version checks, improves compatibility across models and PyTorch versions, and ships several UX and docs refinements.
Heads up: YOLO11 remains the latest stable and recommended model for all use cases.
Release details are available in the v8.3.203 notes, and you can browse the full diff by opening the full changelog linked below.
—
Summary
Safer, smoother training resumes with AMP plus sturdier exports and better version checks. This release improves mixed‑precision resume stability, future‑proofs ONNX opset selection, tightens export requirements (OpenVINO/CoreML), and polishes compatibility across models and PyTorch versions.
Check the v8.3.203 release notes in the GitHub release page by visiting the Ultralytics v8.3.203 release and see everything that landed in this version by browsing the full v8.3.203 changelog.
New Features
- Automatic ONNX opset selection via
best_onnx_opset()with IR version capping for better ONNX Runtime compatibility, introduced in PR #22142 by @glenn-jocher. - Early environment warning when multiple Ultralytics installations are detected to avoid conflicts, added in PR #22131 by @Y-T-G.
Improvements
- Training resume reliability with AMP
- GradScaler is restored when resuming to stabilize loss scaling, delivered in PR #22189 by @Y-T-G and resolving issues #21913 and #17282.
- Export requirements and behavior
- OpenVINO export now requires PyTorch 2.1 or newer, enforced in PR #22156 by @glenn-jocher.
- CoreML export now requires PyTorch 1.11 or newer, enforced in PR #22162 by @glenn-jocher.
- Clear Torch gating for ONNX opset logic so modern Torch versions choose the best opset automatically and older versions follow a stable map, implemented in PR #22155 by @glenn-jocher.
- Model and training flow
compile=Trueis explicitly disabled for YOLO-World and YOLOE models with clear assertions while preserving compile-optimized paths elsewhere, from PR #22148 by @Y-T-G.- RTDETR models now require PyTorch 1.11 or newer with runtime assertions and aligned tests, from PR #22161 by @glenn-jocher.
Compatibility & UX
- Older Torch compatibility is smoother with unified
meshgridbehavior, handled in PR #22158 and PR #22163 by @glenn-jocher. - FastSAM workaround for a PyTorch 1.9 mask summation quirk ensures inference remains stable, addressed in PR #22169 by @Y-T-G.
- Tuner cleanup is safer by checking
best_save_direxists before removal, improved in PR #22137 by @glenn-jocher.
Bug Fixes
- Image URL inference works correctly when query strings are present, preventing infinite stream loops, fixed in PR #22122 by @Burhan-Q.
Docs & Tooling
- Reference docs added for
best_onnx_opsetand multiple-install checks, improved content tab anchors, corrected CI badge, and enhanced the Model YAML Guide and navigation. See PR #22142 by @glenn-jocher, PR #22157 by @Y-T-G, PR #22184 by @glenn-jocher, and PR #22154 by @Y-T-G. - Development environments are more consistent with
uvpinned to 0.8.19, added in PR #22186 by @glenn-jocher.
Tip: verify your PyTorch version before exporting
If you export to OpenVINO or CoreML, confirm your PyTorch version first:
import torch
print(torch.__version__)
Upgrade PyTorch using the official instructions in the PyTorch installation guide, then re-try your export.
Minimal upgrade and usage
pip install -U ultralytics
Example: export with the new ONNX opset selection
yolo export model=yolo11n.pt format=onnx
Resume training safely with AMP enabled
yolo train model=yolo11n.pt data=coco128.yaml epochs=100 amp=True
yolo train resume=True
What’s Changed
- Fix Tuner missing
best_save_dirby @glenn-jocher in PR #22137 - Add check to warn about multiple Ultralytics installations by @Y-T-G in PR #22131
- Disable
compilefor WorldModel and YOLOEModel by @Y-T-G in PR #22148 - Fix URL image inference by @Burhan-Q in PR #22122
- Future‑proof ONNX
opsetselection by @glenn-jocher in PR #22142 - Use opset table for
torch<1.13by @glenn-jocher in PR #22155 - Require
torch>=2.1for OpenVINO exports by @glenn-jocher in PR #22156 - Fix
meshgridwith indexing bug ontorch==1.10by @glenn-jocher in PR #22158 - Require
torch>=1.13for YOLOE models by @glenn-jocher in PR #22160 - Enable slug generation for content tab anchor links in MkDocs by @Y-T-G in PR #22157
- Require
torch>=1.11for RTDETR models by @glenn-jocher in PR #22161 - Fix
transformer.pymeshgrid fortorch<1.11by @glenn-jocher in PR #22163 - Require
torch>=1.11for CoreML exports by @glenn-jocher in PR #22162 - PyTorch 1.9 FastSAM
sum(0).sum()predictor fix by @Y-T-G in PR #22169 - Enable comments and add cloning instruction to Model YAML configuration guide by @Y-T-G in PR #22154
- Add Actions CI badge to Docs by @glenn-jocher in PR #22184
- Pin
uvto==0.8.19by @glenn-jocher in PR #22186 - Restore
GradScaleron resuming training by @Y-T-G in PR #22189
Explore the details by reading the Ultralytics v8.3.203 release notes on GitHub, and review everything that changed by opening the full v8.3.203 changelog.
Thanks and feedback
Huge thanks to the YOLO community and the Ultralytics team for the steady flow of improvements. Please upgrade, try the new release with YOLO11, and share your feedback or issues so we can keep refining the experience.