pypi ultralytics 8.4.4
v8.4.4 - `ultralytics 8.4.4` MuSGD optimizer scale factor update (#23279)

latest release: 8.4.5
11 hours ago

🌟 Summary (single-line synopsis)

Ultralytics v8.4.4 refines MuSGD training behavior (better scaling for short vs. long runs) and includes several quality-of-life fixes for exports, segmentation outputs, logging, and filesystem side effects 🚀🧠

📊 Key Changes

  • 🧠 MuSGD optimizer scaling update (PR #23279 by @Laughing-q)
    MuSGD scale factors are now chosen more appropriately based on total training iterations:

    • > 10,000 iterations: (muon=0.1, sgd=1.0)
    • ≤ 10,000 iterations: (muon=0.5, sgd=0.5)
      This is a behavior change in ultralytics/engine/trainer.py.
  • 📷 Sony IMX500 export compatibility improved (PR #23266 by @Laughing-q)

    • IMX exporter now accepts multiple valid layer counts (a set of allowed values) instead of requiring exactly one, reducing false “unsupported model” failures ✅
    • IMX500 docs/examples are refreshed to focus on YOLO11 (model names and paths updated).
  • 🧩 Segmentation proto/output handling fixed across backends (PR #23241 by @Laughing-q)

    • Segmentation post-processing now pulls the proto masks from the correct output index for both PyTorch and exported models.
    • TensorFlow segmentation handling in AutoBackend now triggers based on task == "segment" (more reliable than guessing from output shape/length).
  • 📁 No more empty run folders when save=False (PR #23268 by @Y-T-G)
    get_save_dir() no longer auto-creates directories while computing a unique run path—reduces unwanted “predict” folders appearing on disk 🧹

  • 📈 TensorBoard OBB graph logging made safer (PR #23276 by @Y-T-G)
    TensorBoard graph logging now uses smart_inference_mode() to avoid gradient tracking—often less memory/overhead and fewer callback edge cases ⚙️

  • 🔗 Docs branding/link refresh (PR #23283 by @glenn-jocher)
    Multiple repo/docs links now point to the Ultralytics Platform entry point (and wording updated accordingly) 🧭

🎯 Purpose & Impact

  • 🚀 More consistent training dynamics with MuSGD
    If you use MuSGD (muon/sgd), you may see improved stability and convergence depending on whether your run is short or long—especially around the 10k-iteration threshold 🧠📉

  • Fewer export surprises (IMX500 + segmentation exports)
    IMX500 exports should fail less often due to minor layer-count differences, and segmentation outputs should be more consistent across PyTorch/exported/TF backends 📦🧩

  • 🧹 Cleaner local runs and tooling behavior
    Computing a save directory no longer creates folders prematurely, which is especially helpful for dry runs, scripts, and save=False predictions 📁✨

  • More robust logging during training
    TensorBoard graph logging becomes less intrusive and more reliable (particularly for OBB setups) 📊🛡️

What's Changed

Full Changelog: v8.4.3...v8.4.4

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.