Ultralytics v8.3.217 — Lighter segmentation, smoother latency 
Heads up, YOLO users! v8.3.217 focuses on leaner segmentation masks, smoother first-iteration latency, and finer control over dataloader memory. If you’re training or deploying YOLO11 (our recommended default), this release should make segmentation runs snappier and more reliable. ![]()
![]()
Summary
- Segmentation masks are now ~4× lighter via consistent uint8 handling.
- Post-processing has more stable first-iteration latency thanks to NMS warmup.
- Dataloader adds a
pin_memoryswitch, defaulting off for validation to improve stability.
New Features
- NMS warmup for clearer first-iteration post-processing latency, introduced in the dedicated NMS warmup PR by Y-T-G. This warms up the backend NMS immediately after the first forward pass, reducing “cold start” spikes.
Improvements
- Segment masks are optimized end-to-end with
.byte()(uint8), detailed in the segment mask.byte()optimization PR by Glenn Jocher:process_maskandprocess_mask_nativenow return uint8 masks.masks2segmentsconsumes byte masks directly, avoiding extra casts.- Image/tensor conversions consistently use uint8 to prevent dtype mismatches.
- Dataloader gains a
pin_memoryoption viabuild_dataloader(..., pin_memory: bool = True), as part of the NMS warmup PR by Y-T-G. Validation defaults topin_memory=Falsefor stability, while training continues to pin memory by default.
Bug Fixes
- Evaluation stability: predicted masks are cast to
float()before IoU computation, included in the segment mask.byte()optimization PR by Glenn Jocher, preventing edge-case dtype errors.
Minimal examples
- Control pinned memory in your dataloader:
from ultralytics.data.build import build_dataloader
# dataset = ...
dl = build_dataloader(dataset, batch=16, workers=8, pin_memory=False)
- NMS warmup happens automatically during backend warmup; no code changes required.
Upgrade
pip install -U ultralytics
Links
- Explore all details on the v8.3.217 release page and, if you want the full picture, you can also view the complete changelog.
- If you’re new to our latest models, the YOLO11 model overview is a great place to start.
Contributors
Big thanks to the community for pushing things forward—credit to Glenn Jocher, Y-T-G, and Laughing-q for their contributions in this release. The Ultralytics team and the broader YOLO community make these improvements possible. ![]()
Try it and share feedback
Update to v8.3.217 and let us know how the lighter masks and NMS warmup perform in your workflows. Your feedback on segmentation throughput, first-iteration latency, and pin_memory behavior helps us iterate quickly.
Happy building with YOLO!