๐ Summary
v8.4.159 improves dataset split handling, startup monitoring, and INT8 SavedModel export efficiency.
๐ Key Changes
-
๐ฅ Avoids unnecessary dataset downloads during training
- NDJSON-to-YOLO conversion now respects the requested training validation split.
- By default, training with
split=valskips unused test images, reducing download time, storage, and preparation overhead. - Using
split=testretains test images and makes the trainer validate against that selected split. - Split-aware caching prevents validation and test conversions from incorrectly reusing the same cached dataset.
- Behavior remains compatible with standalone conversion, metadata inference, classification datasets without validation data, and depth-calibration provenance.
- YOLO, RT-DETR, and classification training now consistently use the selected validation split and corresponding dataset fractions.
-
๐ Reports system metrics as soon as training starts
- The existing
training_startedPlatform request now includes an initial system snapshot. - CPU, memory, disk, and related monitoring data can appear before the first epoch completes.
- Epoch-level reporting remains unchanged, with no additional requests, timers, or periodic monitoring signals.
- Optional system monitoring remains isolated so it does not become a required training dependency.
- The existing
-
๐ง Reduces peak memory during INT8 SavedModel export
- Calibration data is now created only when needed for the ONNX-to-SavedModel conversion and released immediately afterward.
- Testing showed an approximately 533.7 MiB, or 18.2%, reduction in peak process memory on an Apple M4 system.
- Export behavior, runtime, calibration data, and tested full-integer TFLite outputs remain unchanged.
-
๐งช Adds and updates tests and documentation
- Tests now cover validation/test split selection, cache behavior, and depth calibration handling.
- The Platform callback documentation now includes the internal system-metrics helper.
๐ฏ Purpose & Impact
- โก Faster, lighter dataset preparation: Training workflows using Platform NDJSON datasets should avoid downloading images that are not needed for the selected split.
- โ
More predictable validation: The
splitsetting now consistently controls which data is prepared, loaded, and evaluated across supported tasks. - ๐ Better training visibility: Platform users can see system resource information immediately when a run begins instead of waiting for the first epoch.
- ๐ป More reliable exports on memory-constrained devices: INT8 SavedModel exports require less peak memory, reducing the risk of out-of-memory failures while preserving existing export results.
- ๐ Minimal workflow disruption: Existing epoch monitoring, standalone conversion, classification fallbacks, and export behavior are preserved.
What's Changed
- Reduce peak memory during INT8 SavedModel export by @amanharshx in #26272
- Skip unused test downloads and report initial training system metrics by @glenn-jocher in #26276
Full Changelog: v8.4.158...v8.4.159