There is a newer version of the record available.

Published April 27, 2026 | Version v8.4.42
Software Open

Ultralytics YOLO

  • 1. Ultralytics

Description

🌟 Summary

Ultralytics v8.4.42 focuses on more reliable training under GPU memory pressure 🧠💪, plus several stability, security, export, and documentation improvements that make YOLO workflows smoother for both developers and end users.

📊 Key Changes

  • Top priority (current PR #24360 by @glenn-jocher): Better OOM recovery during training 🚀

    • When CUDA runs out of memory in early training, temporary tensors (batch, loss, preds) and trainer loss state are now explicitly cleared before retry.
    • Existing auto-batch retry behavior is preserved (no workflow changes for users).
  • Security hardening in downloads and path handling 🔐

    • Safer archive extraction now blocks unsafe zip/tar paths and risky members.
    • Safer URL/URI-derived file handling to prevent unsafe path traversal patterns.
    • Replaced unsafe parsing behavior in CUDA test logic and improved related safeguards.
  • Export pipeline refactor + reliability fixes 📦

    • Export dependency setup moved from central exporter into per-format modules (cleaner architecture, easier maintenance).
    • CoreML export now skips unnecessary proxy model loading to avoid export crashes on some Apple Silicon setups.
    • Added a new guide for exporting non-YOLO PyTorch models (timm/torchvision/custom) to multiple targets.
  • Backend usability improvement

    • Backends can now be called directly like model(x) instead of only model.forward(x).
  • Bug fixes affecting real workflows 🛠️

    • Fixed dataset/image loading when folder names contain square brackets (e.g. ./[data]/).
    • Fixed hyperparameter tuning checkpoint copying for multi-dataset runs.
    • Fixed plot_results() crash path when CSV plotting fails.
    • Added safety check for YOLOE head fusion when one2many branches are absent.
  • Platform and docs improvements 📚

    • Platform API docs now clearly document segmentation label payloads using segments (not polygon).
    • Jetson guide adds practical memory optimization tips (headless mode, service trimming, show=False, profiling).
    • Updated Axelera integration to stable SDK 1.6.0.
    • Broader docs cleanup: onboarding/order fixes, activity feed path fixes, updated tutorial videos, annotation links, and removed outdated API endpoints.

🎯 Purpose & Impact

  • Fewer failed training runs on limited VRAM 🎯
    The main v8.4.42 change helps training recover more reliably from first-epoch OOM events, reducing frustrating restarts.

  • Safer defaults for file and dataset handling 🛡️
    Security-focused path and extraction checks reduce risk when working with external files and archives.

  • More dependable exports across formats 🌍
    Export refactors and CoreML fixes improve cross-platform conversion stability, especially for deployment-heavy teams.

  • Better developer ergonomics 👩‍💻
    Callable backends, cleaner export internals, and bug fixes in tuning/plotting/path-loading improve everyday productivity.

  • Clearer onboarding and learning resources for all users 🙌
    Improved docs (including Ultralytics Platform guidance and Jetson memory tips) make setup and adoption easier for newcomers while still useful for advanced users.

What's Changed

  • Add https://youtu.be/m-Lc5MXbydg to docs by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/24294
  • Document Platform segment label payloads by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24296
  • Update Axelera SDK to 1.6.0 with YOLO classifier fix by @tamrobb in https://github.com/ultralytics/ultralytics/pull/24278
  • docs: 📝 Add memory optimization tips for NVIDIA Jetson devices by @onuralpszr in https://github.com/ultralytics/ultralytics/pull/24299
  • Bump slackapi/slack-github-action from v3.0.1 to v3.0.2 in /.github/workflows by @UltralyticsAssistant in https://github.com/ultralytics/ultralytics/pull/24309
  • Add guide for exporting non-YOLO PyTorch models by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/24277
  • Add https://youtu.be/hsimB10D6Y0 & https://youtu.be/BpSuXSUzEYY to docs by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/24308
  • fix(coreml): skip proxy load during export by @amanharshx in https://github.com/ultralytics/ultralytics/pull/24312
  • Remove drifting GPU heuristic table from platform quickstart by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/24303
  • Added banner to licensing section by @matt-ultralytics in https://github.com/ultralytics/ultralytics/pull/24295
  • Correct activity feed access paths on platform by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/24288
  • Correct platform onboarding step order and final step by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/24289
  • Remove ghost API endpoints from platform docs by @mykolaxboiko in https://github.com/ultralytics/ultralytics/pull/24111
  • Fix missing weights copy in hyperparameter tuning iterations by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24196
  • Bump conda-incubator/setup-miniconda from 3 to 4 in /.github/workflows by @dependabot[bot] in https://github.com/ultralytics/ultralytics/pull/24319
  • Add __call__ wrapper for BaseBackend.forward method by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24311
  • Set conda workflow permissions by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24317
  • add ultralytics.com/annotate link to docs pages by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/24340
  • Remove redundant .keys() call in dict membership test by @tempoo04 in https://github.com/ultralytics/ultralytics/pull/24339
  • Fix Snyk code security findings by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24342
  • Fix undefined ax variable in plot_results by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/24345
  • Fix lychee install workflow by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24347
  • Fix: FileNotFoundError when loading datasets from paths containing square brackets by @prashansapkota in https://github.com/ultralytics/ultralytics/pull/24353
  • YOLOE: check one2many head exists while fusing prompt embeddings by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/24359
  • Refactor: move export package requirements from exporter.py into per-format utility modules by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24245
  • ultralytics 8.4.42 Free tensors before OOM batch retry by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24360

New Contributors

  • @prashansapkota made their first contribution in https://github.com/ultralytics/ultralytics/pull/24353
  • @tempoo04 made their first contribution in https://github.com/ultralytics/ultralytics/pull/24339
  • @tamrobb made their first contribution in https://github.com/ultralytics/ultralytics/pull/24278

Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.41...v8.4.42

Notes

If you use this software, please cite it using the metadata from this file.

Files

ultralytics/ultralytics-v8.4.42.zip

Files (3.0 MB)

Name Size Download all
md5:1d6aa4f0dad9e6ba8e72afe5aa07607e
3.0 MB Preview Download

Additional details

Related works