# ultralytics v8.4.135 — v8.4.135 - Respect dataset object counts when selecting max_det (#25993) - Product: ultralytics (https://whatsnew.fyi/product/ultralytics) - Vendor: ultralytics - Date: 2026-08-29 - Version: v8.4.135 - Original notes: https://github.com/ultralytics/ultralytics/releases/tag/v8.4.135 - Permalink: https://whatsnew.fyi/product/ultralytics/releases/v8.4.135 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **changed** — Training and validation now automatically increase max_det if the default value is lower than the largest number of labeled objects found in a single image - **changed** — User-specified max_det values are preserved but a warning is shown when they may limit validation recall - **changed** — The resolved max_det value is propagated to native end-to-end model heads before validation for improved consistency with NMS-free models - **added** — Warnings notify users when images contain more objects than max_det allows, explaining that a low limit can cap recall and produce misleading validation metrics - **changed** — Fraction boundary behavior is now consistent, with fraction=1 and fraction=1.0 both meaning use the full dataset, integers greater than 1 representing image count, 0 and 0.0 for skipping optional test split - **changed** — Boolean values such as fraction=True are now rejected instead of being interpreted ambiguously - **added** — Additional tests cover configuration validation, dataset conversion, concatenated datasets, training pipelines, and end-to-end detection behavior ##### 🌟 Summary **v8.4.135 improves detection reliability by adapting `max_det` to dataset object counts and standardizing dataset fraction handling.** ##### 📊 Key Changes - 🚀 **Smarter `max_det` selection for detection, segmentation, pose, and OBB tasks** - Training and validation now inspect the largest number of labeled objects found in a single image. - If the default `max_det` is too low, it is automatically increased to match the observed dataset maximum. - User-specified `max_det` values are preserved, but a warning is shown when they may limit validation recall. - The resolved value is propagated to native end-to-end model heads before validation, improving consistency for NMS-free models. - ⚠️ **Clearer warnings for object-count mismatches** - Users are notified when images contain more objects than `max_det` allows. - Warnings explain that a low limit can cap recall and produce misleading validation metrics. - Increasing `max_det` may increase validation cost, and cannot exceed the model or export format’s own capacity. - 📏 **Consistent `fraction` boundary behavior** - `fraction=1` and `fraction=1.0` now both mean “use the full dataset.” - Integers greater than `1` continue to represent an image count. - `0` and `0.0` remain available for skipping an optional test split. - Training and validation splits must still contain at least one image. - Boolean values such as `fraction=True` are now rejected instead of being interpreted ambiguously. - 📚 **Documentation and validation updates** - Training, export, and cloud-training documentation now describe the normalized fraction semantics. - Additional tests cover configuration validation, dataset conversion, concatenated datasets, training pipelines, and end-to-end detection behavior. ##### 🎯 Purpose & Impact - ✅ **More trustworthy validation:** Large-object-count images are less likely to be truncated by an unnoticed default limit. - 📈 **Better recall measurement:** Automatically matching `max_det` to observed data helps prevent artificially low validation recall. - 🧩 **More predictable configuration:** Dataset behavior no longer depends on whether a serializer writes `1` as an integer or `1.0` as a float. - 🛠️ **Safer user overrides:** Custom `max_det` settings continue to work, with warnings when they may restrict results. - ⚡ **Potential performance trade-off:** A higher detection limit can increase validation and inference post-processing cost, while model or deployment-format limits may still cap the maximum number of predictions. ##### What's Changed * Normalize fraction boundary values by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/25994 * Respect dataset object counts when selecting max_det by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/25993 **Full Changelog**: https://github.com/ultralytics/ultralytics/compare/v8.4.134...v8.4.135