New Release: Ultralytics v8.4.146

:rocket: Ultralytics v8.4.146 Released

Ultralytics v8.4.146 improves RT-DETR reliability for small and dynamic inputs, strengthens cross-device export portability, fixes FP16 embedded-NMS workflows, and refreshes GPU container environments. This release also brings better Windows CUDA defaults and more reliable NDJSON downloads.

:glowing_star: Highlights

  • More stable RT-DETR inference, export, training, validation, and tracking
  • Device-agnostic TorchScript exports across CUDA, Apple MPS, and CPU
  • Safer FP16 embedded-NMS exports for segmentation, pose, and OBB
  • Faster default CUDA training behavior on Windows
  • More resilient downloads for large NDJSON dataset images
  • Updated PyTorch, CUDA, TensorRT, and ONNX Runtime GPU environments

:hammer_and_wrench: RT-DETR Reliability

PR #26120 from @glenn-jocher delivers several important RT-DETR fixes:

  • Prevents failures when small images produce fewer anchors than the configured query count.
  • Keeps query counts, denoising masks, and learned query embeddings aligned.
  • Preserves the correct detection limit in dynamic ONNX and OpenVINO exports.
  • Fixes bounding boxes when dynamic exports run at sizes different from the original export size.
  • Improves TrackTrack compatibility by avoiding an unsupported NMS recovery argument.
  • Validates operation across image sizes from 32 to 640 pixels, plus training, validation, tracking, TorchScript, CoreML, ONNX, and OpenVINO workflows.

:package: Export Improvements

Device-agnostic TorchScript

PR #26118 from @raimbekovm removes hard-coded device assumptions from export-time tensor creation.

TorchScript models exported on CUDA or Apple MPS can now be loaded and used more reliably on other devices, including CPU.

Safer FP16 embedded NMS

PR #26114 from @raimbekovm converts end-to-end NMS output rows to float32.

This prevents FP16 segmentation, pose, and OBB exports from failing during mask or bounding-box post-processing.

:high_voltage: Training and Data Improvements

Better Windows CUDA defaults

PR #26105 from @Y-T-G stops automatically enabling the channels_last memory format during Windows CUDA training, where it could significantly reduce performance.

Users who benefit from this layout can still enable it explicitly with channels_last=True.

More reliable NDJSON downloads

PR #26113 from @raimbekovm replaces the previous 30-second total download deadline with connection and socket-inactivity timeouts.

Large images are now less likely to fail when downloaded over slow, shared, or constrained networks.

:spouting_whale: GPU and Container Updates

PR #26115 from @glenn-jocher updates the GPU and export environments:

  • AMD64 GPU images now use PyTorch 2.14 with CUDA 13.2.
  • NVIDIA ARM64 images move to NVIDIA PyTorch 26.08 with CUDA 13.4.
  • ONNX Runtime GPU support is updated.
  • GPU runner images now include g++ for compiled training workflows.
  • TensorRT support is updated for CUDA 13.
  • Conda Docker builds now use conda-forge PyTorch 2.13, torchvision 0.28, and CUDA 13.0.
  • LiteRT remains in the Python export image because its current dependencies are not compatible with PyTorch 2.14.

:warning: CUDA 13 containers may not support older Maxwell, Pascal, or Volta GPUs. Updated images also require compatible NVIDIA host drivers. Rebuild or validate TensorRT engines whenever the GPU, CUDA, TensorRT, or JetPack environment changes.

:test_tube: CI and Maintenance

PR #26119 from @glenn-jocher restores the GPU CI workflow while keeping it temporarily disabled through an explicit condition.

Additional maintenance includes:

  • Disk cleanup before isolated export setup.
  • Documentation updates covering CUDA 13, JetPack, TensorRT, DLA, Conda images, and export compatibility.
  • Package version update from 8.4.145 to 8.4.146.

:inbox_tray: Try It Now

Upgrade to the latest release with:

pip install -U ultralytics

You can review the complete release details on the Ultralytics v8.4.146 release page, or inspect every change in the full v8.4.145 to v8.4.146 changelog.

Please try the release and share your feedback, benchmarks, and any issues you encounter. Thanks to the Ultralytics team, contributors, and the wider YOLO community for continuing to improve training and deployment workflows! :raising_hands: