pypi ultralytics 8.3.186
v8.3.186 - `ultralytics 8.3.186` Zero-dependency TQDM progress bars (#21790)

latest releases: 8.3.194, 8.3.193, 8.3.192...
11 days ago

🌟 Summary

Lean and polished progress bars, sturdier downloads, and smarter GPU handling. v8.3.186 replaces third‑party tqdm with a fast, zero‑dependency TQDM, improves reliability across downloads and exports, and streamlines CI/docs. 🚀

📊 Key Changes

  • Zero‑dependency TQDM progress bars (PR #21790 by @glenn-jocher) ✨
    • New ultralytics.utils.tqdm.TQDM with iterator/context support and clean single‑line, rich‑style output.
    • Auto-disables on quiet logs, adapts to terminal width, shows rate/ETA, and throttles in GitHub Actions.
    • tqdm is removed from package dependencies; internal code and docs now use TQDM.
    • New docs reference: utils/tqdm.
    • Minor UX tweak: zip/unzip units now read “files” for clarity.
  • More reliable downloads (PRs #21791, #21794) 🔁
    • safe_download() detects partial downloads via Content-Length, logs clear warnings, and cleans incomplete files between retries.
  • Smarter DataLoader memory pinning (PR #21807) 🧠
    • pin_memory is now enabled only on CUDA systems to avoid unnecessary warnings on CPU-only setups.
  • Export stability fix (PR #21802) ⚙️
    • Ensures CoreML export tensors are created on the same device as the model (works across CPU/GPU, macOS/Linux).
  • Region counting visualization upgrade (PR #21805) 🗺️
    • Draws true polygon regions and centers labels at polygon centroids for clearer overlays.
  • GPU monitoring package update (PR #21795) 🧩
    • Switch from pynvml to NVIDIA’s official nvidia-ml-py package; CI installs it for GPU tests (PR #21792).
  • Faster installs in notebooks/docs (PR #21793) ⚡
    • Examples now use !uv pip install ... for speed and reliability.
  • Docs/infra cleanups (PRs #21797, #21810 and content/link updates) 🧹
    • Dependency simplification in docs build; downloads badge now links to a richer ClickHouse dashboard.

Minimal example with the new progress bar:

from ultralytics.utils import TQDM

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

🎯 Purpose & Impact

  • Lighter installs and fewer external dependencies ➜ smaller footprint, fewer warnings, and more predictable behavior. 📦
  • Cleaner, consistent progress output across terminals and CI, with better rate/ETA reporting. 📈
  • More robust model/dataset downloads; fewer corrupt files and clearer diagnostics on flaky networks. 🌐
  • Reduced “pin_memory” warnings and smarter defaults for CPU/GPU environments. 🧘
  • Fixes export device mismatches for CoreML, improving cross‑platform stability. ✅
  • Better region visualizations improve clarity for zone/region counting solutions. 🎨
  • CI and docs improvements don’t change APIs—no user action required for training, inference, or exports. 🙌

See the Ultralytics Docs for details: https://docs.ultralytics.com

What's Changed

Full Changelog: v8.3.185...v8.3.186

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.