π Summary
π οΈ v8.4.108 improves MuSGD stability, inference and tracking efficiency, analytics quality, ONNX compatibility, and documentation usabilityβwithout changing model accuracy or architecture.
π Key Changes
-
Fixed a MuSGD training crash by @Y-T-G:
- MuSGD now applies its Muon-style update only to supported 2D linear weights and 4D convolution filters.
- LayerScale gains, normalization weights, biases, and other parameters use the existing SGD update path.
- Prevents
AssertionErrorfailures when training models containing parameters such as(C, 1, 1)LayerScale tensors.
-
Improved prediction performance reporting:
- Predictors now retain per-image preprocessing, inference, and postprocessing times through
predictor.speed. - Added average processed image area through
predictor.pixels. - Timing information is reset correctly for each run and supports mixed image sizes.
- Predictors now retain per-image preprocessing, inference, and postprocessing times through
-
Reduced tracking overhead and preserved device placement:
- TrackTrack computes motion cues only for detection pairs supported by IoU, reducing unnecessary CPU work, especially in crowded scenes.
- Removed redundant NumPy array copies in ByteTrack and TrackTrack.
- Tracked boxes now remain on the same device as the original detections, avoiding unexpected CPU/GPU data splits.
-
Improved ONNX Runtime example compatibility:
- Corrected image height/width handling during letterbox preprocessing.
- Added fallback support for models with dynamic input dimensions.
-
Strengthened training and inference analytics:
- Training events now report final outcomes such as fitness, duration, completed epochs, optimizer, architecture, and dataset information.
- Multi-GPU runs now record the GPU count instead of a simple distributed-training flag.
- Invalid modes and tasks are excluded from analytics events.
-
Expanded Ultralytics Platform integration:
- Model weights for YOLO26, YOLO11, YOLOv8, and supported YOLOv5 variants now link to their corresponding Ultralytics Platform model pages.
- Huawei Ascend 310B1 and 310B4 targets are now documented as supported on Platform.
-
Improved generated reference documentation:
- Fixed broken tables for union types such as
str | Path. - Preserved multi-line return descriptions.
- Documented inherited constructors correctly.
- Improved source panels, examples formatting, frontmatter handling, and empty argument tables.
- Fixed broken tables for union types such as
-
Updated documentation links and CI reliability:
- Replaced unstable ADE20K and Flickr30K links with maintained GitHub sources.
- Excluded Gitee links from automated checks to avoid false failures caused by bot protection.
π― Purpose & Impact
- β MuSGD users can train a wider range of models reliably, including architectures with LayerScale or other non-matrix parameters.
- π Inference and tracking are more efficient, with lower avoidable CPU work and better GPU/CPU device consistency.
- π Performance measurements and analytics are more useful, making it easier to compare real-world runs across hardware and distributed setups.
- π ONNX Runtime examples work with more exported models, including dynamic-shape models.
- π Documentation is easier to navigate and more accurate, with working model links, corrected API references, and clearer examples.
- π Users can more easily explore, train, and deploy supported models through the Ultralytics Platform, the recommended workflow for managing YOLO projects.
What's Changed
- Fix unstable dataset links in docs by @glenn-jocher in #25445
- Link model weights to Platform pages by @glenn-jocher in #25446
- Exclude gitee.com from broken link checks by @glenn-jocher in #25449
- fix input size handling in YOLOv8/YOLO11 ONNXRuntime example by @onuralpszr in #25451
- Add predictor speed attribute and predict event fields by @glenn-jocher in #25440
- Escape pipes in reference tables so union types stay in one column by @glenn-jocher in #25455
- Fix reference truncation, constructor signatures, and empty argument tables by @glenn-jocher in #25457
- Record training outcomes in the train event by @glenn-jocher in #25456
- Fix Examples captions and hard-wrapped table descriptions by @glenn-jocher in #25458
- Update OrangePi Huawei Ascend 310B Platform support by @glenn-jocher in #25459
- Document inherited constructors and anchor frontmatter parsing by @glenn-jocher in #25460
- Only send events for a valid mode and task by @glenn-jocher in #25461
- Reduce TrackTrack CPU and keep tracked boxes on the source device by @onuralpszr in #25448
- Record the GPU count instead of a ddp flag by @glenn-jocher in #25463
- Skip the redundant contiguous copy in
RandomFlipby @JESUSROYETH in #25462 - Fix MuSGD crash on non-matrix params like LayerScale by @Y-T-G in #25447
Full Changelog: v8.4.107...v8.4.108