New Release: Ultralytics v8.4.13

:rocket: Ultralytics v8.4.13 is here β€” smarter training resilience + more reliable exports

Ultralytics v8.4.13 makes training more resilient by automatically recovering from CUDA out-of-memory (OOM) errors during the first epoch by retrying with a smaller batch size :repeat_button::brain::fire:


:glowing_star: New Features (Highlights)

:fire: Auto-retry on CUDA OOM during training (major change)

If a CUDA OOM happens in the first epoch on single-GPU, Ultralytics will now:

  • retry up to 3 times
  • halve batch each retry (down to 1)
  • rebuild the training pipeline (dataloaders + optimizer + scheduler) for a clean continuation :hammer_and_wrench:

This reduces the classic loop of β€œOOM β†’ lower batch β†’ restart training” and helps especially with first-epoch memory spikes :raising_hands:


:package: Export Improvements

:white_check_mark: More reliable ONNX export for OBB + NMS

When exporting OBB (oriented bounding boxes) to ONNX with NMS enabled, simplify=True is now forced to avoid a known runtime issue (TopK-related errors in some ONNX Runtime versions). Fewer surprises at deployment time :rocket:


:desktop_computer: System & Tooling Reliability

:gear: DGX system detection + TensorRT handling

Adds DGX detection and uses it (along with Jetson JetPack 7) to trigger a TensorRT version check/reinstall path for improved export reliability on those systems.

:toolbox: Packaging stability fix: pin setuptools

Build requirements are pinned to setuptools<=81.0.0 to avoid breakages introduced by newer setuptools versions (notably affecting tensorflow.js export tooling).


:books: Docs & Examples Refresh

:compass: Clearer guidance aligned with Ultralytics YOLO + YOLO26

Docs and examples continue steering toward YOLO26 as the recommended model for new projects (smaller, faster, more accurate than YOLO11, and natively end-to-end). If you’re new or upgrading pipelines, start with yolo26n.pt.

:movie_camera: Tracking content update

Tracking docs now embed a newer multi-object tracking video featuring YOLO26 + BoT-SORT/ByteTrack.

:counterclockwise_arrows_button: Example dependency update

The RT-DETR ONNX Runtime Python example updates protobuf.


:puzzle_piece: Internal Changes (for contributors)

  • Adds _build_train_pipeline() to rebuild loaders/optimizer/scheduler when the batch size changes (used by the new OOM recovery flow).

:wrench: Quick start

Update to the latest release:

pip install -U ultralytics

Train with Ultralytics YOLO (example):

yolo detect train model=yolo26n.pt data=coco128.yaml imgsz=640

Want the easiest end-to-end workflow for data, training, and deployment? Try Ultralytics Platform as part of your pipeline with Ultralytics Platform.


:receipt: What’s Changed (PRs)

Read the full details in the v8.4.13 GitHub Release and browse the full changelog comparison.


:speech_balloon: Feedback welcome

Please try v8.4.13 and let us know:

  • Did the first-epoch OOM auto-retry save you a restart? :fire:
  • Any edge cases where you’d like different retry behavior?
  • ONNX OBB + NMS exporting smoothly in your runtime?

Your reports help improve YOLO for everyone β€” thanks to the whole Ultralytics team and the broader YOLO community for pushing this forward.