๐ Summary
Ultralytics v8.4.28 improves training reliability on small datasets by making autobatch smarter, while also strengthening network robustness, backend efficiency, and docs/test stability. ๐
๐ Key Changes
-
(Most important) Autobatch now respects dataset size ๐ฆ
From PR #24020 by @glenn-jocher: automatic batch-size selection is now capped to the number of training images.- Added
dataset_sizethroughTrainer.auto_batch(),check_train_batch_size(), andautobatch(). - Autobatch profiling now skips candidate batch sizes larger than the dataset.
- Final batch recommendation is clamped as a safety check.
- Added
-
More reliable dataset/platform networking ๐๐
From PR #24010 by @glenn-jocher:- Smarter retries for transient download failures (timeouts, connection issues, rate limiting, server errors).
- Faster failure on non-retryable issues (like local save errors).
- Platform URL resolution retries increased (3 โ 5) with clearer retry behavior and backoff logging.
-
TensorFlow backend import optimization โก
From PR #24017 by @Y-T-G:- TensorFlow is now imported only for
saved_modelandpbformats in the TensorFlow backend loader. - Avoids unnecessary dependency loading in unrelated inference paths.
- TensorFlow is now imported only for
-
Test reliability improvement for YOLO26 OBB CI ๐งช
From PR #24011 by @glenn-jocher:- Updated a test image URL (
boats.jpg) to a fixed jsDelivr CDN path for more consistent test behavior.
- Updated a test image URL (
-
Ultralytics Platform docs updated to match current UI ๐
From PR #24014 by @mykolaxboiko:- Removed outdated Activity tab references in model docs.
- Expanded onboarding docs to cover all tours and restart options.
๐ฏ Purpose & Impact
-
Better small-dataset training defaults โ
Users training on tiny datasets are less likely to get impractical batch recommendations, reducing setup friction and odd edge-case behavior. -
More resilient cloud/data workflows ๐ก๏ธ
Dataset downloads and platform URL resolution should fail less often on temporary network issues, especially in CI or unstable network environments. -
Cleaner runtime behavior ๐งน
Conditional TensorFlow imports can reduce startup overhead and avoid avoidable environment-related issues. -
Improved developer experience ๐ฉโ๐ป
More stable tests and clearer docs mean smoother onboarding, troubleshooting, and release confidence.
What's Changed
- NDJSON and Platform retries and timeouts improvements by @glenn-jocher in #24010
- Use jsdelivr CDN assets URL for boats.jpg reliability by @glenn-jocher in #24011
- Scope Tensorflow import in TensorflowBackend by @Y-T-G in #24017
- Update Platform docs: remove model Activity tab, expand onboarding tours by @mykolaxboiko in #24014
ultralytics 8.4.28Limit autobatch to dataset size by @glenn-jocher in #24020
Full Changelog: v8.4.27...v8.4.28