🌟 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. 🚀🛡️
📊 Key Changes
- Training resume reliability (priority)
- ONNX export robustness
- Export requirements updates
- Model and training flow improvements
- Data and inference fixes
- Correctly detect image URLs with query strings (no infinite stream loop) PR #22122 🌐✅
- Compatibility cleanups
- Reliability and UX
- Docs and tooling
- Added reference docs for
best_onnx_opset
and multiple-install checks; improved slug generation for content tabs; corrected CI badge; enhanced Model YAML Guide and nav PRs #22142, #22157, #22184, #22154 📚 - Pin dev tooling: uv set to 0.8.19 for consistent environments PR #22186 🧰
- Added reference docs for
🎯 Purpose & Impact
- More reliable mixed-precision resumes 🎛️
- Restoring the GradScaler avoids instability and prolonged warm-up when continuing training with AMP.
- Fewer export surprises across environments 📦
- ONNX opset selection and IR capping reduce runtime/load errors.
- Clear, upfront version requirements for OpenVINO (Torch ≥ 2.1) and CoreML (Torch ≥ 1.11) prevent confusing failures.
- Better user guidance and DX 🧭
- Early warnings for multiple installs help resolve version/path conflicts quickly.
- Compile behavior is explicit for YOLO-World and YOLOE, reducing trial-and-error.
- Broader compatibility and stability 🧱
- Meshgrid and FastSAM fixes ensure older Torch users can run without errors.
- Smoother tuning and documentation experience ✨
- Safer cleanup logic and improved docs navigation/references make workflows clearer and more predictable.
Tip: If you export to OpenVINO or CoreML, verify your PyTorch version first:
import torch
print(torch.__version__)
Upgrade instructions: see the official PyTorch install guide on the PyTorch website.
What's Changed
- Fix Tuner missing
best_save_dir
by @glenn-jocher in #22137 - Add check to warn about multiple Ultralytics installation by @Y-T-G in #22131
- Disable
compile
for WorldModel and YOLOEModel by @Y-T-G in #22148 - Fix url image inference by @Burhan-Q in #22122
ultralytics 8.3.203
Future-proof ONNXopset
selection by @glenn-jocher in #22142- Use opset table for
torch<1.13
by @glenn-jocher in #22155 - Require
torch>=2.1
for OpenVINO exports by @glenn-jocher in #22156 - Fix meshgrid with indexing bug on
torch==1.10
by @glenn-jocher in #22158 - Require
torch>=1.13
for YOLOE models by @glenn-jocher in #22160 - Enable slug generation for content tab anchor links in MkDocs by @Y-T-G in #22157
- Require
torch>=1.11
for RTDETR models by @glenn-jocher in #22161 - Fix transformer.py meshgrid for
torch<1.11
by @glenn-jocher in #22163 - Require
torch>=1.11
for CoreML exports by @glenn-jocher in #22162 - PyTorch 1.9 FastSAM
sum(0).sum()
predictor fix by @Y-T-G in #22169 - Enable comments and add cloning instruction to Model YAML configuration guide by @Y-T-G in #22154
- Add Actions CI badge to Docs by @glenn-jocher in #22184
- Add
uv
required-version = "==0.8.19"
by @glenn-jocher in #22186 ultralytics 8.3.203
RestoreGradScaler
on resuming training by @Y-T-G in #22189
Full Changelog: v8.3.202...v8.3.203