Ultralytics v8.3.208 
A focused release that expands safe FP16 exports across ONNX and TorchScript, improves NCNN reliability by routing through ONNX, and speeds up RT-DETR with anchor caching β plus clearer docs and smoother dependency handling. Built with and for our community. ![]()
Highlights
- Safer FP16 exports on GPU for both ONNX and TorchScript, with automatic CPU fallback and clear warnings.
- NCNN export pipeline now flows through ONNX β PNNX for better stability and compatibility.
- Faster RT-DETR inference/training via anchor and mask caching.
- Smarter
check_requirements()with interchangeable packages likeonnxruntimeoronnxruntime-gpu.
New Features 
- FP16 export improvements for ONNX and TorchScript with GPU-only enforcement, expanded tests, and updated docs in PR #22316 by @glenn-jocher.
- Interchangeable package support in
check_requirements()(e.g.,("onnxruntime", "onnxruntime-gpu")) in PR #22321 by @glenn-jocher.
Improvements 
- NCNN export now uses ONNX β PNNX (instead of TorchScript β PNNX) for better reliability in PR #22315 by @Y-T-G.
- RT-DETR speed-up with cached decoder anchors and masks in PR #22318 by @Y-T-G.
- Clearer validation docs explaining that validation uses
model.namesin PR #22319 by @jb297686. - Better
check_requirements()examples, including custom pip args and version constraints, in PR #22317 by @glenn-jocher.
Bug Fixes & Maintenance 
- Safer INT8 TensorRT cache cleanup in tests using
missing_ok=Truein PR #22320 by @glenn-jocher. - GitHub Actions update to
astral-sh/setup-uvv7 in PR #22327 by Dependabot. - Dependabot config cleanup and label tidy in PR #22322 by @Borda.
Quick Examples 
- Export ONNX in FP16 on GPU with Ultralytics YOLO (YOLO11 recommended):
from ultralytics import YOLO
YOLO("yolo11n.pt").export(format="onnx", half=True, device=0) # β
GPU FP16
- Attempting FP16 export on CPU will auto-disable FP16 and warn:
from ultralytics import YOLO
YOLO("yolo11n.pt").export(format="onnx", half=True, device="cpu") # βΉοΈ Will warn and use half=False
- Check requirements with interchangeable packages:
from ultralytics.utils.checks import check_requirements
check_requirements([("onnxruntime", "onnxruntime-gpu"), "numpy"])
- Export NCNN (now via ONNX β PNNX under the hood):
from ultralytics import YOLO
YOLO("yolo11n.pt").export(format="ncnn")
Upgrade 
pip install -U ultralytics
Whatβs Changed
- Show
check_requirementspip install extras example by @glenn-jocher in PR #22317 - Add
missing_ok=Trueto TensorRT INT8 cache cleanup test by @glenn-jocher in PR #22320 - Fix validation data argument and class names description by @jb297686 in PR #22319
- Drop deprecated Dependabot fields by @Borda in PR #22322
- Interchangeable packages feature for
check_requirements()by @glenn-jocher in PR #22321 - Cache anchors in RT-DETR head to avoid repeated initialization by @Y-T-G in PR #22318
- Bump
astral-sh/setup-uvfrom 6 to 7 in workflows by Dependabot in PR #22327 - Create NCNN from ONNX model instead of TorchScript by @Y-T-G in PR #22315
- Expand FP16 export support in PR #22316 by @glenn-jocher
New Contributors 
- @jb297686 made their first contribution in PR #22319
- @Borda made their first contribution in PR #22322
Try It & Share Feedback 
Upgrade, kick the tires, and let us know how it goes. The team recommends starting with YOLO11 for all new projects. Check the full details in the v8.3.208 release notes, and compare changes using the v8.3.207 β v8.3.208 diff.
Thanks to everyone in the YOLO community and the Ultralytics team for making this happen. Your feedback drives our roadmap β keep it coming! ![]()