Ultralytics v8.3.246 is out!
TL;DR: Ultralytics v8.3.246 improves end-of-training reporting by uploading rich, interactive plot data + class names so results are easier to explore and interpret ![]()
![]()
![]()
You can review the release details directly in the Ultralytics v8.3.246 release page, and browse the complete diff in the v8.3.245 → v8.3.246 changelog comparison.
New Features (Highlights)
Rich plot-data upload on train completion (priority)
At on_train_end(), Ultralytics now collects plots from both the trainer and validator and uploads them with the final "training_complete" event—making dashboards and reports far more informative ![]()
![]()
Includes data for:
- Confusion matrix
- PR curves
- Metric–confidence curves
Implemented in PR #23104 by @glenn-jocher.
Class names included in the final payload
The "training_complete" message now includes classNames, so plots/results can be labeled correctly (no more guessing label mappings) ![]()
Added in PR #23104 by @glenn-jocher.
Structured plot metadata for interactive visualizations
Plot callbacks (on_plot) now provide raw arrays + plot type, enabling interactive rendering:
- Confusion matrix → raw matrix counts
- PR curve → x/y arrays + per-class AP
- Metric-confidence → x/y arrays
Shipped in PR #23104 by @glenn-jocher.
Improvements
Better diagnostics when installs fail
check_requirements() now surfaces more detail (including captured command output), making dependency issues easier to debug—especially in CI/containers ![]()

NVML init failures are now logged
If GPU telemetry can’t initialize, Ultralytics prints a warning instead of failing silently.
From PR #23096 by @glenn-jocher.
Export dependency updates & safeguards
- Bump
onnxslimminimum to>=0.1.82to reduce export tooling issues via PR #23101 by @onuralpszr - ExecuTorch export adds a guard
ruamel.yaml<0.19.0to prevent version-related failures via PR #23102 by @onuralpszr
Dockerfile example updates
Documentation/usage improvements in PR #23103 by @glenn-jocher.
Bug Fixes / Correctness
- Fix incorrect shape comments in mask processing in PR #23100 by @raimbekovm
Try it now
Upgrade with:
pip install -U ultralytics
Then run a quick check:
yolo predict model=yolo11n.pt source=bus.jpg
Feedback welcome
If you notice anything off with plot uploads, exports, or environment checks, please share details (logs + OS/Python/PyTorch + command used). Community reports help us iterate quickly and keep Ultralytics YOLO tooling solid for everyone ![]()