New Release: Ultralytics v8.3.186

Title: Ultralytics v8.3.186 — Faster, Leaner Progress Bars, Reliable Downloads, and Smarter GPU Handling

Summary
v8.3.186 introduces a zero-dependency TQDM progress bar, sturdier downloads, smarter DataLoader memory pinning, and export stability fixes—plus CI/docs polish. Expect lighter installs, cleaner output, and more reliable behavior across environments.

New Features

  • Zero-dependency TQDM progress bars (PR #21790 by @glenn-jocher)
    • New ultralytics.utils.tqdm.TQDM with iterator/context support and single-line, rich-style output
    • Auto-disables on quiet logs, adapts to terminal width, shows rate/ETA, throttles in GitHub Actions
    • Removed tqdm dependency; all internals and docs now use TQDM
    • New docs reference: utils/tqdm
    • UX tweak: zip/unzip units now display “files” for clarity (PR #21799 by @glenn-jocher)

Minimal example

from ultralytics.utils import TQDM

for _ in TQDM(range(100), desc="Processing", unit="items"):
    ...

Improvements

  • More reliable downloads
    • Detect partial downloads via Content-Length and clean incomplete files between retries (PR #21791 by @glenn-jocher, PR #21794 by @glenn-jocher)
  • Smarter DataLoader memory pinning
    • Enable pin_memory only on CUDA systems to avoid unnecessary warnings on CPU-only setups (PR #21807 by @glenn-jocher)
  • GPU monitoring update
    • Switch from pynvml to NVIDIA’s official nvidia-ml-py (PR #21795 by @onuralpszr); CI pre-installs for GPU tests (PR #21792 by @glenn-jocher)
  • Faster installs in notebooks/docs
    • Use !uv pip install in examples for speed and reliability (PR #21793 by @glenn-jocher)
  • Docs/infra polish

Bug Fixes

  • CoreML export device mismatch
    • Create tensors on the same device as the model for stable CPU/GPU exports across macOS/Linux (PR #21802 by @RizwanMunawar)
  • Region counting visualization
    • True polygon rendering and centroid-aligned labels for clearer overlays (PR #21805 by @RizwanMunawar)

Purpose & Impact

  • Smaller footprint and fewer external dependencies
  • Clean, consistent progress output with better rate/ETA
  • More robust downloads with clearer diagnostics on flaky networks
  • Reduced “pin_memory” warnings and smarter CPU/GPU defaults
  • Stable CoreML exports across platforms
  • Clearer region/zone visualizations
  • CI/docs changes are transparent to users—no action required

What’s Changed (PRs)

Getting Started

  • Upgrade: pip install -U ultralytics
  • Try the new progress bar: see the minimal example above or run any train, val, or predict command to experience the cleaner output
  • Docs: Explore the latest guides and references in the Ultralytics Docs

Feedback
We’d love your feedback. Try v8.3.186 in your workflows—especially progress bars, downloads, region visuals, and CoreML export—and let us know what you think in Discussions. Your input helps the community and Ultralytics team keep improving.

Links

  • Release notes: Ultralytics v8.3.186
  • Full changelog: compare v8.3.185…v8.3.186
  • Documentation: Ultralytics Docs