pypi ultralytics 8.4.109
v8.4.109 - Log GFLOPs at the training `imgsz` (#25483)

4 hours ago

🌟 Summary

📊 v8.4.109 improves profiling accuracy, export reliability, inference efficiency, tracking stability, and Ultralytics Platform integrations—led by correctly reporting GFLOPs for the actual training image size.

📊 Key Changes

  • Accurate GFLOPs logging at training resolution 🎯

    • model_info_for_loggers() now passes the trainer’s actual imgsz to FLOPs profiling.
    • Logging integrations—including W&B, Comet, ClearML, DVC, Neptune, HUB, and Platform—no longer report the default 640-pixel GFLOPs for every run.
    • Classification and other models with size-independent operations also receive more accurate measurements through the updated ultralytics-thop dependency.
  • Improved model fusion and profiling ⚙️

    • model.fuse() now accepts an imgsz argument so reported model information matches the intended input resolution.
    • Export workflows pass the export image size during fusion and profiling.
  • More reliable INT8 calibration 📦

    • Classification exports now honor the fraction setting when selecting calibration images.
    • OpenVINO INT8 calibration uses the complete requested calibration dataset instead of silently limiting calibration to NNCF’s default 300 batches.
  • Faster and more efficient mask plotting 🖼️

    • Removed an unused GPU image construction and unnecessary tensor allocations.
    • Mask rendering now avoids redundant resizing and host-to-device transfers, reducing memory use and plotting overhead.
  • Inference warmup now uses the real input shape 🔥

    • Predictors warm up using the first preprocessed input rather than a fixed square dummy image.
    • This better supports rectangular images, tensor sources, dynamic shapes, and shape-specialized backends.
  • Training recovery behavior made safer 🛡️

    • Healthy runs are no longer stopped simply because an early validation fitness value rounds to zero.
    • Recovery remains enabled for genuine NaN or infinite loss and fitness values.
  • Tracking and numerical stability improvements 🚦

    • ReID embeddings are consistently processed as float32 for more dependable association decisions.
    • Embedding-distance calculations use the appropriate dtype precision.
    • macOS tracking workflows avoid spurious NumPy warnings and can run faster during covariance updates.
  • Heatmap and validation performance improvements 📈

    • Heatmap regions are drawn once per frame, preventing flicker when no objects are tracked and avoiding repeated work.
    • Confusion-matrix matching replaces repeated array scans with direct lookups.
  • Expanded Ultralytics Platform documentation and integrations 🌐

    • Added Labelbox import documentation, including direct NDJSON upload workflows.
    • Added coming-soon documentation for CVAT and Label Studio integrations, with supported YOLO export paths available today.
    • Updated Cityscapes guidance and removed broken Platform dataset links.
    • For dataset annotation, training, and deployment, users can use Ultralytics Platform.
  • System and CI maintenance 🧰

    • Removed stale persistent CPU-name caching and the macOS subprocess probe.
    • CI now tests newer OpenVINO Conda packages and uses actions/stale@v11.
    • Cleaned up augmentation documentation image sizing for consistent rendering.

🎯 Purpose & Impact

  • More trustworthy experiment tracking: GFLOPs now reflect the resolution actually used for training or export, making model comparisons and resource estimates more meaningful.
  • 🚀 Better deployment preparation: INT8 calibration respects user-selected data limits and OpenVINO can use the full requested calibration set, potentially improving quantization quality.
  • Lower inference and visualization overhead: Real-shape warmup and optimized mask plotting can reduce first-inference delays, memory use, and unnecessary computation.
  • 🛡️ Fewer unexpected failures: Valid early-stage training runs are less likely to be incorrectly treated as corrupted, while real numerical failures still trigger recovery.
  • 🎥 More stable tracking outputs: ReID precision and macOS matrix-operation fixes improve consistency and reduce distracting runtime warnings.
  • 🌍 Simpler dataset workflows: New Platform integration guidance helps users move data from labeling tools into annotation, training, and deployment workflows with fewer conversion steps.

What's Changed

Full Changelog: v8.4.108...v8.4.109

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.