🌟 Summary
Ultralytics v8.4.48 is a stability-focused release that mainly improves training reliability on Ultralytics Platform and makes failure cases much clearer, with supporting fixes for benchmarking and reporting. 🛠️✅
📊 Key Changes
-
(Top priority) Platform training edge-case fixes from PR #24431 by @glenn-jocher:
- Added guards for empty semantic-mask batches to prevent crashes in segmentation workflows. 🎭
- Added safe handling for empty RLE keypoint masks in loss computation to avoid invalid operations. 🤸
- Training now fails with a clear error if no checkpoint (
best/last) is saved, instead of failing later with confusing behavior. 💾 - Model loading now throws a clearer error if a checkpoint depends on a missing
ultralytics.*module, with guidance to retrain/use current official models. 📦
-
Benchmark/export robustness fix from PR #24418 by @lakshanthad:
datais now only passed to export formats that actually support it, reducing export benchmark failures across formats. 📊
-
Platform metrics correctness fix from PR #24425 by @mykolaxboiko:
training_complete.bestEpochnow reports the real best epoch (from early stopping), not just the final epoch trained. 🎯
-
Docs improvement for multi-GPU training from PR #24422 by @artest08:
- Added a custom trainer guide section showing how to use SyncBatchNorm safely in multi-GPU setups (especially helpful for small per-GPU batch sizes). 📚🧠
-
Maintenance/docs housekeeping
- Dependabot
pipupdates switched from daily to monthly (PR #24411 by @glenn-jocher). 📅 - CI docs updated with corrected iOS App Store link and table cleanup (PR #24430 by @glenn-jocher). 📱
- Dependabot
🎯 Purpose & Impact
- More reliable training pipelines on edge cases (empty masks, empty keypoint visibility), especially important for automated or mixed datasets. 🚀
- Faster debugging and clearer failures when training output/checkpoint loading goes wrong. This saves developer and MLOps time. ⏱️
- More trustworthy Platform reporting with accurate
bestEpoch, improving experiment tracking and decision-making. 📈 - Better cross-format benchmarking stability, so export testing is less brittle. 🔄
- Overall, this release is less about new model features and more about making existing YOLO workflows safer, clearer, and production-friendlier. ✅
What's Changed
- Run Python dependency updates monthly by @glenn-jocher in #24411
- Fix benchmarks passing unsupported
dataarg to export formats by @lakshanthad in #24418 - Fix Platform
bestEpochreporting wrong value at training_complete by @mykolaxboiko in #24425 - docs: Add SyncBatchNorm example to custom trainer guide by @artest08 in #24422
- Add iOS App Store link to CI docs by @glenn-jocher in #24430
ultralytics 8.4.48Fix Platform training edge cases by @glenn-jocher in #24431
Full Changelog: v8.4.47...v8.4.48