Title: Ultralytics v8.3.185 – Better Rich TQDM progress bars, sturdier data loading, and smoother CI/docs
Summary
Ultralytics v8.3.185 focuses on a clearer training experience for Rich TQDM users, plus reliability improvements in data loading and streamlined CI and docs. Expect cleaner progress bars, safer dataset handling, and a more polished developer experience.
What’s new in v8.3.185
- Progress bars (priority)
- Rich-based TQDM bars now render consistently across terminals and notebooks: console width is set to 200 and bar width to 10 when
YOLO_TQDM_RICH=true
, resolving missing or truncated bars seen at width 80 in some environments.
- Rich-based TQDM bars now render consistently across terminals and notebooks: console width is set to 200 and bar width to 10 when
- Data loading reliability
YOLODataset
now defaults to 3 image channels (RGB) when channel info isn’t provided.yolo_bbox2segment()
explicitly setschannels=3
to avoid missing-key errors.
- CI improvements
- GPU CI job switches to uv for environment management (
uv pip install
/uv pip list
) and removes extra installs (e.g.,pynvml
,tensorrt
,onnxruntime-gpu
) for faster, cleaner runs.
- GPU CI job switches to uv for environment management (
- Docs and maintenance
- Link-check workflow updated to correctly exclude CI files.
SystemLogger.get_metrics()
docstring clarified with accurate Python usage examples.- Neural Magic integration links now point to internal docs for a smoother reading experience.
Why it matters
- Better UX for training progress
- Rich TQDM users get consistent, readable bars across terminals, CI, and Colab. Default users are unaffected unless you enable Rich via
YOLO_TQDM_RICH=true
.
- Rich TQDM users get consistent, readable bars across terminals, CI, and Colab. Default users are unaffected unless you enable Rich via
- More robust workflows
- Safer defaults prevent crashes when dataset metadata is incomplete and ensure reliable bbox-to-seg conversion.
- Faster, simpler CI
- Quicker, more reproducible tests with uv; note that some GPU backend tests may have reduced coverage.
- Clearer docs
- Easier navigation and more accurate examples help both contributors and users.
How to enable Rich progress bars
- CLI:
YOLO_TQDM_RICH=true yolo train data=coco8.yaml model=yolo11n.pt epochs=1
- Python:
import os os.environ["YOLO_TQDM_RICH"] = "true" from ultralytics import YOLO YOLO("yolo11n.pt").train(data="coco8.yaml", epochs=1)
New Features
- Consistent Rich TQDM rendering with fixed console width and 10-character bar when
YOLO_TQDM_RICH=true
.
Improvements
- Default
YOLODataset
channels set to 3 (RGB). - CI uses uv for faster environment setup and removes unnecessary GPU extras.
- Documentation link checks refined; integration links updated to internal docs.
- Clearer
SystemLogger.get_metrics()
docstring with correct examples.
Bug Fixes
- Resolved missing/truncated progress bars in certain terminals/CI/Colab.
- Prevented missing-key errors in
yolo_bbox2segment()
by explicitly settingchannels=3
.
Linked PRs and Authors
- GPU CI with
uv pip install
: by @Laughing-q – see PR 21776 - Update links.yml for Lychee v0.20.0: by @glenn-jocher – see PR 21779
- Fix
SystemLogger
docstring: by @glenn-jocher – see PR 21788 - Fix data loading in
yolo_bbox2segment
: by @Y-T-G – see PR 21772 - Remove Neural Magic blog redirect on integration page: by @RizwanMunawar – see PR 21787
- Fix TQDM Rich bars to width 10: by @glenn-jocher – see PR 21789
Useful links
- Release: v8.3.185
- Full changelog: compare v8.3.184…v8.3.185
- Documentation: See the Ultralytics Docs
Try it and share feedback
Upgrade to v8.3.185 and let us know how the new Rich progress bars feel in your setup. Your feedback helps us fine-tune the experience for everyone. Thanks to the community and contributors for the continued support—this release is a direct result of your reports and PRs.
Command to upgrade
pip install -U ultralytics