pypi ultralytics 8.4.108
v8.4.108 - Fix MuSGD crash on non-matrix params like LayerScale (#25447)

3 hours ago

🌟 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 AssertionError failures 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.
  • 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.
  • 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

Full Changelog: v8.4.107...v8.4.108

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.