pypi ultralytics 8.4.103
v8.4.103 - Prevent training from ending during warmup (#25321)

15 hours ago

๐ŸŒŸ Summary

v8.4.103 improves training reliability, result handling, deployment workflows, and documentationโ€”most importantly ensuring warmup finishes on schedule so short training runs reach their intended learning-rate behavior. ๐Ÿš€

๐Ÿ“Š Key Changes

  • Training warmup no longer consumes entire short runs ๐ŸŽฏ

    • warmup_epochs is now treated as a true epoch count rather than being forced to at least 100 iterations.
    • Warmup is capped so at least the final planned epoch uses the regular learning-rate schedule.
    • Warmup calculations are centralized and remain consistent after batch-size changes, out-of-memory recovery, and timed-training adjustments.
    • Example: a 10-epoch run with 3 warmup epochs now warms up for 3 epochs instead of potentially staying in warmup for the entire run.
  • More accurate validation and experiment reporting ๐Ÿ“ˆ

    • Confusion matrices now honor the confidence threshold supplied by the validator instead of silently overriding it to 0.25.
    • Validation samples sent to the Platform now include evenly ranked F1 samples across the full image distribution, plus separate best and worst cohorts.
    • Segmentation, pose, and raw confusion-matrix plots are no longer dropped from experiment trackers such as W&B, ClearML, Neptune, and DVC.
  • Improved model construction and performance โšก

    • Fixed backbone width scaling when a layerโ€™s channel count happens to equal the number of classes, preventing unexpectedly oversized models.
    • Accelerated ModelEMA updates with batched PyTorch operations where supported.
    • Made model profiling safer by profiling copied layers rather than modifying shared model modules.
  • More robust results and mask processing ๐Ÿ–ผ๏ธ

    • Results methods such as plot(), save_txt(), save_crop(), summary(), and verbose() now work correctly with NumPy-backed results from Results.numpy().
    • Mask processing now binarizes masks before cropping while preserving output behavior.
    • Image-list prediction sources now follow HTTP 308 redirects on supported Python versions.
  • Safer and clearer exports ๐Ÿ”ง

    • CoreML compatibility checks now run before conversion and reject unsupported dynamic classification and RT-DETR exports earlier.
    • Removed the unsupported Hailo opset argument.
    • RKNN exports now warn users when a requested opset above 19 is automatically reduced.
  • Expanded Platform and API capabilities โ˜๏ธ

    • Platform REST API documentation now covers supported API-key operations across datasets, models, training, exports, deployments, storage, activity, and workspaces.
    • Added documentation for Slack alerts for training, export, and deployment results.
    • Updated Platform On Premise and Docker image references to use rolling latest tags.
    • Linux GPU Docker guidance now recommends CDI --device reservations for more reliable access across host daemon reloads.
  • Documentation and workflow improvements ๐Ÿ“š

    • YOLO26 documentation now presents inference quickstarts above the fold and points open-vocabulary YOLOE-26 content to its dedicated page.
    • Guides are organized by project stage, from data preparation through deployment and edge hardware.
    • Added contextual โ€œWhatโ€™s Nextโ€ links across prediction, dataset, training, validation, and export pages.
    • Updated broken Tiger-Pose video links and moved YOLOv5 documentation into a clearly labeled legacy section.
    • Updated GitHub Actions workflows to use actions/setup-python@v7.

๐ŸŽฏ Purpose & Impact

  • Short training jobs now train as intended โœ… Users no longer risk spending an entire run in warmup with very low learning rates, which should improve optimization and make results more representative of the configured schedule.
  • Metrics and diagnostics are more trustworthy ๐Ÿ“Š Confidence thresholds, confusion matrices, F1 samples, and tracker plots now better reflect actual validation settings and model behavior.
  • Model sizes are more predictable ๐Ÿง  Models created from YAML configurations will no longer become unexpectedly large in certain class-count configurations.
  • NumPy interoperability is substantially better ๐Ÿ”„ Users can convert results to NumPy and continue using common output, plotting, cropping, and export methods.
  • Deployment is safer and easier to troubleshoot ๐Ÿ› ๏ธ Unsupported export combinations fail earlier, while RKNN overrides and Docker GPU requirements are now communicated clearly.
  • Platform users get better automation and integration options ๐Ÿ”” Slack alerts and broader API-key support make it easier to monitor and manage training and deployment programmatically.
  • Recommended model: For new projects, use YOLO26, or streamline annotation, training, and deployment with Ultralytics Platform.

What's Changed

Full Changelog: v8.4.102...v8.4.103

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.