NewYour coding agent can read the release notes before it upgrades.Set up the MCP server โ
PyPI ยท #1924 most downloaded on PyPI
Ultralytics YOLO ๐ for SOTA object detection, instance segmentation, semantic segmentation, depth estimation, classification, pose estimation, oriented object detection, and multi-object tracking.
Last release today
04 Oct 2026
Ships on a steady schedule
a new release about every 8 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
11 versions withdrawn
withdrawn after publishing
5 years old
848 releases ยท first in 2022
Ultralytics v8.4.3 boosts Ultralytics Platform NDJSON dataset downloads/conversion speed ๐, improves training metric correctness ๐ง , and refreshes defa
Ultralytics v8.4.3 boosts Ultralytics Platform NDJSON dataset downloads/conversion speed ๐, improves training metric correctness ๐ง , and refreshes defaults/docs around YOLO26 ๐.
aiohttp only when NDJSON conversion is used (faster startup, fewer unnecessary deps) ๐ฆ8.4.2 โ 8.4.3 ๐ULTRALYTICS_PLATFORM_URL to point callbacks/links to staging or local environments ๐งชYOLO()/CLI fallback model becomes yolo26n.pt and many docs/examples follow suit โ
rle_loss when the model actually supports it (avoids confusing metrics) ๐งพResults.summary() entries โ PR #23218 by @xusuyong
ULTRALYTICS_PLATFORM_URL makes it much easier to test integrations without patching code.warmup_lr by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23234IMX inference wrapper by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23235README.md metrics table by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23238yolo26n in docs and examples by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23242ultralytics 8.4.3 Faster Platform NDJSON downloads by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23257Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.2...v8.4.3
One column per quarter.
Ultralytics v8.4.2 mainly fixes Ultralytics Platform (`ul://` / NDJSON) classification training by converting datasets into the correct on-disk layout
Ultralytics v8.4.2 mainly fixes Ultralytics Platform (ul:// / NDJSON) classification training by converting datasets into the correct on-disk layout and validating them properly, plus a few quality-of-life and docs/CI tweaks ๐ ๏ธโ
task == "classify" and creates an ImageNet-style folder layout: {split}/{class_name}/... (instead of images/ + labels/ used for detection-style tasks).data.yaml, images/{split}/, labels/{split}/).Trainer.get_dataset() now always resolves ul:// / .ndjson into a local dataset first, then runs the correct dataset validation for the task.Results.summary() now returns top-5 (PR #23215, @glenn-jocher) ๐ง ๐
summary() is intended to return top-5 classes + confidences instead of only top-1.save_dir reliably (PR #23191, @Y-T-G) ๐๐ง
save_dir is now treated as an allowed override/config key, so setting output directories via CLI/Python overrides is more consistent.ul://...) or .ndjson exports, this release prevents failures caused by the wrong dataset folder structure and ensures the trainer checks the right dataset type.Results.summary() output in this specific tag) โ ๏ธsave_dir without it being ignored or flagged.โ If youโre using Ultralytics Platform + classification, v8.4.2 is a โmust updateโ.
save_dir from argument validation by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23191ultralytics 8.4.2 Fix Platform Classify training by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23217Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.1...v8.4.2
Ultralytics v8.4.1 brings back NCNN export + inference on ARM64 (Apple Silicon/ARM servers/edge devices) ๐ฑโ๏ธ, plus stability fixes for pose/seg traini
Ultralytics v8.4.1 brings back NCNN export + inference on ARM64 (Apple Silicon/ARM servers/edge devices) ๐ฑโ๏ธ, plus stability fixes for pose/seg training ๐ ๏ธ and a big docs/benchmarks cleanup ๐โจ.
ultralytics/engine/exporter.py)ultralytics/nn/autobackend.py)ultralytics/utils/benchmarks.py)proto unpacking and more robust handling when there are no foreground masks (PR #23205 and PR #23197) ๐งฉmodel.fuse() is now idempotent (wonโt re-fuse an already fused model), reducing wasted time and avoiding potential side effects (PR #23189) ๐งIf you want, tell me your target device (e.g., Raspberry Pi 5, Apple M2, ARM server) and whether youโre exporting YOLO11 or YOLO26, and Iโll suggest the safest export settings for NCNN โ๏ธ๐ฆ.
RealNVP and RLELoss by @lmycross in https://github.com/ultralytics/ultralytics/pull/23186model.fuse() statement by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23189sem_masks error and incorrect proto unwrap by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23197int8=True and update tflite wrapper by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23185PoseLoss26 to prevent crash by @Miaoge-Ge in https://github.com/ultralytics/ultralytics/pull/23205ultralytics 8.4.1 Re-enable NCNN exports for ARM64 by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/23211Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.0...v8.4.1
Ultralytics YOLO26 has arrived. Re-engineered from the ground up by @glenn-jocher, @Laughing-q, and the Ultralytics YOLO team, YOLO26 is purpose-built
Ultralytics YOLO26 has arrived. Re-engineered from the ground up by @glenn-jocher, @Laughing-q, and the Ultralytics YOLO team, YOLO26 is purpose-built for edge and low-power environments. This release introduces a streamlined, native end-to-end NMS-free architecture, delivering faster, lighter, and more accessible deployment across all platforms.
ultralytics 8.4.0 YOLO26 Models Release by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23176Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.253...v8.4.0
v8.4.0 - New YOLO26 Models Release Latest
Latest
Compare
Ultralytics 8.3.253 adds explicit Vulkan GPU device selection for NCNN inference (plus safer PaddlePaddle/NCNN dependency handling) to improve cross-v
Ultralytics 8.3.253 adds explicit Vulkan GPU device selection for NCNN inference (plus safer PaddlePaddle/NCNN dependency handling) to improve cross-vendor GPU acceleration and reliability โก๐ฅ๏ธ๐ ๏ธ
device="vulkan:0" or device="vulkan:1" to choose which Vulkan-capable GPU NCNN uses (helpful on AMD/Intel/non-NVIDIA systems and multi-GPU setups).select_device() now accepts "vulkan..." device strings and leaves them unchanged so they flow cleanly into inference setup.ultralytics/nn/autobackend.py) now:
device starts with "vulkan",net.set_vulkan_device(<id>),device=torch.device("cpu") to keep the rest of the pipeline consistent (NCNN handles the GPU work internally).device=vulkan:<id>.!=3.3.0) in both export and inference paths due to an upstream breakage ๐.Example usage (NCNN model with Vulkan):
from ultralytics import YOLO
model = YOLO("yolo11n_ncnn_model")
results = model("image.jpg", device="vulkan:0") # pick Vulkan GPU 0
ultralytics 8.3.253 Add support to select Vulkan device when using NCNN by @Faerbit in https://github.com/ultralytics/ultralytics/pull/23164Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.252...v8.3.253
v8.3.252 polishes Ultralytics console output by fixing a tqdm progress-bar issue that could print โ100% completeโ twice โ ๐
v8.3.252 polishes Ultralytics console output by fixing a tqdm progress-bar issue that could print โ100% completeโ twice โ
๐
ultralytics/utils/tqdm.py to skip the final โcompleteโ redraw if 100% was already printed.m.shape = None) in ultralytics/engine/exporter.py to avoid stale shapes when exporting with a new image size ๐ฆslugify() plus _get_project_name() in ultralytics/utils/callbacks/platform.py so project/run names become URL-safe (better logging links, fewer weird characters) ๐conf=0.1 and iou=0.7 (more typical tracking behavior)conf=0.25iou=0.7True in places; FP16 half shown as False for validation docs)coco8.yaml when data isnโt providedmake_anchors() in ultralytics/utils/tal.py iterates over len(feats) instead of directly iterating a strides tensor to avoid TracerWarning during tracing ๐ ๏ธimgsz, improving export consistency across runs ๐ultralytics 8.3.252 Fix TQDM duplicate 100% states by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23158Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.251...v8.3.252
v8.3.251 improves training/integration reliability by initializing Trainer callbacks earlier (so Ultralytics HUB/Platform sees the original data input
v8.3.251 improves training/integration reliability by initializing Trainer callbacks earlier (so Ultralytics HUB/Platform sees the original data input like ul://...) while also polishing profiling accuracy, tuning stability, and device/dataset/docs support ๐งฉ๐
on_pretrain_routine_start now runs before dataset resolution (get_dataset()), keeping the original args.data intact (e.g., ul:// URIs).modelId for better event correlation.ul:// weights loading ๐ฐ๏ธ
YOLO(...)._load() now recognizes ul:// as a valid remote source prefix (alongside http(s)://, rtsp://, etc.).model.info() now accepts an imgsz argument, and benchmarks use it so FLOPs reflect the actual input size (not always 640).Tuner now passes save_dir into subprocess runs to ensure consistent output paths.run_ray_tune) ๐งนis_rockchip() now handles SoC strings with suffixes like rk3588-..., improving detection on more boards.ul://user/datasets/name) before itโs resolved/rewrittenโimproving traceability and โtraining_startedโ metadata accuracy.imgsz.run_ray_tune by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/23147is_rockchip function to handle more device variants by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/23153ultralytics 8.3.251 Earlier trainer callback init by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23155Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.250...v8.3.251
Ultralytics v8.3.250 adds out-of-the-box support for the TT100K traffic sign dataset ๐ฆโplus smoother Ultralytics HUB dataset handling, better run dire
Ultralytics v8.3.250 adds out-of-the-box support for the TT100K traffic sign dataset ๐ฆโplus smoother Ultralytics HUB dataset handling, better run directory behavior, and a few quality/build/docs fixes ๐ ๏ธ๐
ultralytics/cfg/datasets/TT100K.yaml with 221 classes and full dataset metadata.ul://.../datasets/... sources by resolving them locally first, then performing NDJSON โ YOLO conversion automatically.--project path handling for โnestedโ names like user/project, placing outputs under the normal runs directory.ConfusionMatrix(names=...) default from [] to {} to match its annotated type and avoid mutable-default pitfalls.ONNXRUNTIME_ROOT in CMake (so custom install paths work as documented).urllib3 in the RT-DETR ONNXRuntime Python example requirements.yolo detect train data=TT100K.yaml model=yolo11n.pt ๐ul://), training should now โjust workโ even when the dataset starts as NDJSONโless manual conversion and fewer path surprises ๐ฆโ
--project values wonโt accidentally create confusing folder structures; runs stay grouped under the expected task directory ๐๏ธConfusionMatrix default parameter by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/23138ultralytics 8.3.250 Tsinghua-Tencent 100K dataset by @PrashantDixit0 in https://github.com/ultralytics/ultralytics/pull/22892Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.249...v8.3.250
Ultralytics 8.3.249 adds an official NVIDIA ARM64 Docker image for running YOLO11 on JetPack 7 / ARM64 GPUs (plus a few usability + contributor/docs i
Ultralytics 8.3.249 adds an official NVIDIA ARM64 Docker image for running YOLO11 on JetPack 7 / ARM64 GPUs (plus a few usability + contributor/docs improvements) ๐๐ณ
docker/Dockerfile-nvidia-arm64 based on NVIDIAโs PyTorch NGC image (nvcr.io/nvidia/pytorch:25.10-py3)ultralytics/ultralytics:latest-nvidia-arm64opencv-python-headless (avoids GUI dependency issues in containers) ๐งฉonnxruntime_gpu + reinstalls torch/torchvision for CUDA compatibility ๐ฅyolo11n.pt) ๐ฆul:// URIs (Ultralytics Platform / HUB-style referencing)
resolve_platform_uri() resolves ul://... into signed download URLs (using ULTRALYTICS_API_KEY)check_file() now accepts ul://... and automatically downloads/caches the file locally ๐ฅ๐๏ธObjectCounter.display_counts so show_in / show_out flags behave correctly (prevents empty/incorrect labels) ๐ ๏ธCONTRIBUTING.md with PR size/scope guidance, feature PR expectations, and automated review notes to streamline contributions ๐คul://
If you want to try the new ARM64 image on JetPack 7:
t=ultralytics/ultralytics:latest-nvidia-arm64
sudo docker pull $t && sudo docker run -it --ipc=host --runtime=nvidia $t
CONTRIBUTING.md by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23133ObjectCounter.display_counts by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/23132ultralytics 8.3.249 Jetson AGX Thor and DGX Spark Docker by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/23111Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.248...v8.3.249
Ultralytics v8.3.248 makes auto-installation more reliable by ensuring uv pip install installs into the *currently running Python environment* (plus a
Ultralytics v8.3.248 makes auto-installation more reliable by ensuring uv pip install installs into the currently running Python environment (plus a couple of small quality-of-life fixes) ๐งฐโ
check_requirements() runs uv pip install with --python {sys.executable} so installs go to the right environment (venv/conda/system).uv pip install --system, which could accidentally install into the system Python.imxconv-pt discovery ๐๐ฆ
imxconv-pt in the current Pythonโs bin/ directory first (venv-friendly), then falls back to PATH.pip install imx500-converter[pt].TORCH_CPP_LOG_LEVEL=ERROR to suppress noisy PyTorch NNPACK warnings in containers.VIRTUAL_ENV isnโt set) should see more predictable installs and fewer broken environments.imxconv-pt) should โjust workโ more often inside venvs, and fails faster with an actionable message when the tool isnโt installed.plot_images by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/23114ultralytics 8.3.248 Target correct Python env for auto-install by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23118Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.247...v8.3.248
Ray Tune + Weights & Biases (W&B) tuning runs now get unique, trial-specific names in Ultralytics 8.3.247, making hyperparameter sweeps much easier to
Ray Tune + Weights & Biases (W&B) tuning runs now get unique, trial-specific names in Ultralytics 8.3.247, making hyperparameter sweeps much easier to track ๐งช๐
train ๐ท๏ธ
trial_id to append a unique suffix{base_name}_{trial_suffix} (example: my_run_00000) โ
if not preds: return)Boxes.xywh) and clarifies tensor dimension naming in transformer codeultralytics 8.3.247 Improve Ray Tune trial names logged to W&B by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/23084Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.246...v8.3.247
Ultralytics v8.3.246 upgrades training reporting for Ultralytics HUB by uploading rich, interactive plot data + class names at the end of training, ma
Ultralytics v8.3.246 upgrades training reporting for Ultralytics HUB by uploading rich, interactive plot data + class names at the end of training, making results easier to explore and understand ๐๐ท๏ธโจ
on_train_end(), Ultralytics now collects plots from both the trainer and validator and sends them with the final "training_complete" event (e.g., confusion matrix, PR curves, metricโconfidence curves)."training_complete" message now includes classNames, so plots/results can be labeled correctly on the frontend.on_plot) now pass raw arrays + plot type, enabling interactive rendering in Ultralytics HUB:
check_requirements() now surfaces more detail (e.g., captured command output) so dependency issues are easier to debug.onnxslim minimum bumped to >=0.1.82 to reduce ONNX export tooling issues.ruamel.yaml<0.19.0 to prevent version-related export failures.For the full context, see PR #23104 by @glenn-jocher and related PRs included in the v8.3.246 release notes.
check_requirements() by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23097ultralytics 8.3.246 Save training plots data for loggers by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23104Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.245...v8.3.246
Ultralytics 8.3.245 enhances training/run telemetry by reporting system hardware capacity (RAM + disk) and best model file size, plus a small docs foo
Ultralytics 8.3.245 enhances training/run telemetry by reporting system hardware capacity (RAM + disk) and best model file size, plus a small docs footer refresh ๐ฅ๏ธ๐๐ฆ
_get_environment_info() now reports:
psutilshutil.disk_usage("/")on_train_end(), the callback records the best checkpoint file size (modelSize) and includes it in the final training-complete payload..view(-1) / .reshape(...) in attention/query-selection code comments (no runtime behavior change).ultralytics 8.3.245 2026 Docs footer and System metrics updates by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23095Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.244...v8.3.245
YOLO inference is now safer when switching devices mid-run by automatically resetting the predictor to avoid stale state issues ๐๐ฅ๏ธโ
YOLO inference is now safer when switching devices mid-run by automatically resetting the predictor to avoid stale state issues ๐๐ฅ๏ธโ
ultralytics/engine/model.py, the model now detects when device= changes between predict() calls (e.g., CPU โ GPU) and re-initializes self.predictor instead of reusing the old one.setuptools<71.0.0 workaround and replaces it with a targeted fix: on Linux + ARM64 + Docker, require packaging>=22.0 to avoid build/export issues.model.predict(device="cpu") and other times device=0, the predictor will no longer โcarry overโ device-specific state that can cause incorrect or surprising results.ultralytics 8.3.244 Reset YOLO predictor on device change by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/23086Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.243...v8.3.244
v8.3.243 sharpens Ultralytics training telemetry and console outputโcleaner progress bars, richer run metadata for Ultralytics Platform/HUB-style trac
v8.3.243 sharpens Ultralytics training telemetry and console outputโcleaner progress bars, richer run metadata for Ultralytics Platform/HUB-style tracking, and safer/less noisy logging ๐๐งน๐ก
_get_environment_info() collector (OS, Python, hostname, CPU/GPU details, command, and Git repo/branch/commit when available) plus model info (params, GFLOPs, class count) into the training-start event payload.pip install ultralytics-opencv-headless for servers/CI/Docker to avoid OpenCV GUI libGL issues.docker run commands now include --runtime=nvidia to reduce โGPU not foundโ surprises.ULTRALYTICS_SKIP_REQUIREMENTS_CHECKS=1 skips requirement checks/auto-install behavior (useful for controlled environments)."" as a background class may help in some cases.--runtime=nvidia usage description to Dockerfiles by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/23080ultralytics 8.3.243 Deduplicate ConsoleLogger progress bars by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23082Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.242...v8.3.243
Ultralytics 8.3.242 adds a new headless OpenCV distribution (ultralytics-opencv-headless) to make installs on servers/CI/containers smoother and more
Ultralytics 8.3.242 adds a new headless OpenCV distribution (ultralytics-opencv-headless) to make installs on servers/CI/containers smoother and more reliable ๐ฆ๐ฅ๏ธ
ultralytics-opencv-headless (PR #23075 by @glenn-jocher)
ultralytics, swapping opencv-python โ opencv-python-headless during the build.1.23.5 to avoid TensorRT export breakage (PR #23032) ๐งmasks2segments() now accepts NumPy arrays or PyTorch tensors, with safer dtype/contiguity handling for OpenCV contours (PR #23025) โ
fraction to Axelera export args and ensures a default calibration dataset when missing (PR #23045) โ๏ธv8OBBLoss filtering of tiny rotated boxes (PR #23061) ๐ฏdfl), plus small code cleanups/staticmethod refactors (multiple PRs) ๐โจultralytics-opencv-headless avoids GUI-related OpenCV dependencies, reducing common install/runtime issues on Linux servers, Docker, and CI.masks2segments() works cleanly with both NumPy and Torch pipelines, with fewer OpenCV edge-case failures.If you want, I can also suggest when to install ultralytics vs ultralytics-opencv-headless based on your environment (desktop vs Docker/CI).
masks2segments to support numpy input by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23025numpy for JetPack 5 Docker builds by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/23032numpy pin for Sony IMX export and JetPack 6 systems by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/23030sam-3.md docs by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/23041box_loss to cls_loss in TVPDetectLoss by @ShuaiLYU in https://github.com/ultralytics/ultralytics/pull/23046ultralytics 8.3.242 New ultralytics-opencv-headless PyPI package by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23075Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.241...v8.3.242
v8.3.241 boosts ONNX Runtime performance on macOS by preferring CoreML on Apple hardware, stabilizes ExecuTorch exports, and expands hardware/image su
v8.3.241 boosts ONNX Runtime performance on macOS by preferring CoreML on Apple hardware, stabilizes ExecuTorch exports, and expands hardware/image support for Rockchip and 2โchannel data โ plus a round of documentation and tooling polish. ๐๐
Mac ONNX Runtime: Prefer CoreML on Apple hardware (@glenn-jocher)
device="mps", Ultralytics now prefers CoreMLExecutionProvider over CPU for ONNX Runtime.ExecuTorch export reliability improvements (@glenn-jocher, @onuralpszr)
export_executorch() now pins numpy<=2.3.5 to avoid known coremltools failures with newer NumPy.import torch in the ExecuTorch export path for a cleaner exporter.New hardware support: Rockchip RV1126B (@venjye, @glenn-jocher)
"rv1126b" to supported Rockchip chips in code.Better image handling: 2โchannel images in Annotator (@kenanking)
ultralytics.utils.plotting.Annotator now correctly handles 2โchannel numpy images by converting them to 3โchannel before drawing and saving.TF/SavedModel & TensorRT backend cleanups (@glenn-jocher)
tf.saved_model.load for this path.SAM 3 docs: correct save usage (@dingjie-ai)
SAM3SemanticPredictor examples now set save=True through the overrides dict at initialization, not per call.Sony IMX500 & solutions docs polish (@glenn-jocher)
YOLOSegment example for the Sony IMX500 integration docs.Docs site & authorship updates (@glenn-jocher, @RizwanMunawar, @onuralpszr)
ultralytics/llm@v0.1.8 for a better in-docs chat experience.mkdocs-ultralytics-plugin dev dependency to >=0.2.4.Faster inference on macOS with ONNX Runtime ๐โก
device="mps" now automatically benefit from Apple Neural Engine / GPU acceleration via CoreML when available.More reliable ExecuTorch exports ๐ฆ๐งฉ
Broader deployment options on edge devices ๐งฑ๐
Smoother visualization for non-standard data ๐๐ผ๏ธ
Cleaner and more predictable backends ๐ง ๐ง
Clearer documentation & better tooling experience ๐โจ
save=True should be configured.Overall, v8.3.241 is a backend and compatibilityโfocused release: faster ONNX Runtime on macOS, more dependable exports, better edge-device coverage, and smoother visualization for specialized image formats โ with documentation and tooling kept in sync. ๐๏ธ๐
ultralytics 8.3.241 ORT CoreML execution provider when device="mps" by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22984Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.240...v8.3.241
ultralytics 8.3.240 is a stability-focused release that makes SAM 2/3 video segmentation more reliable (especially on Apple Silicon), tightens GPU mem
ultralytics 8.3.240 is a stability-focused release that makes SAM 2/3 video segmentation more reliable (especially on Apple Silicon), tightens GPU memory usage, and polishes exports and documentation for smoother dayโtoโday workflows. ๐
๐ง SAM3 on Apple Silicon (MPS) now runs reliably
repeat() on complex tensors.torch.view_as_real() / torch.view_as_complex() for an MPS-safe path while keeping existing behavior on CUDA/CPU.๐ง SAM2/SAM3 video memory usage is now bounded
_prune_non_cond_memory() in SAM2 video predictors to periodically clear โnon-conditioningโ frame outputs.num_maskmem, memory_temporal_stride_for_eval) and runs automatically during video inference.๐ฅ SAM3 semantic video tracking is faster and cleaner
init_trk_keep_alive and max_trk_keep_alive to 30) while decreasing keep-alive when masks are empty.๐ฆ ONNX export environments are more complete
onnxslim>=0.1.80 to the export extra in pyproject.toml, so pip install ultralytics[export] pulls in onnxslim automatically.๐ฅ Clearer setup for SAM 3 model weights
sam3.pt download link.๐ฌ Docs chat widget is now easier to extend
UltralyticsChat instance in a variable (const ultralyticsChat = ...) so future scripts can programmatically control the widget.๐ผ๏ธ Cleaner docs for color previews & Markdown-heavy pages
docs/build_reference.py now preserves Markdown structures (tables, admonitions, code blocks, headings, lists) instead of collapsing lines.Colors class docstring so the Markdown table reads cleanly, with โAttributesโ and โExamplesโ sections following it.๐ Branding & integration docs refresh for Comet
๐ Better Apple Silicon experience
๐งน More stable long video runs
๐ฏ More predictable tracking behavior
๐ ๏ธ Smoother export and deployment workflows
onnxslim in the export extras reduces โmissing dependencyโ surprises for users who export to ONNX and then run postโprocessing or optimization.๐ Easier SAM 3 onboarding
sam3.pt from Hugging Face mean fewer setup issues and less guesswork for new SAM 3 users.๐ More maintainable and readable documentation
utils.plotting.Colors() previews by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22973SAM3SemanticVideoPredictor speed issue by removing unmatched objects by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22976ultralytics 8.3.240 SAM3 Apple MPS tensor repeat() fixes by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22968Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.239...v8.3.240
Ultralytics v8.3.239 focuses on smoother SAM 3 text prompting, richer system monitoring via SystemLogger(), quieter logs, and broader ONNX export supp
Ultralytics v8.3.239 focuses on smoother SAM 3 text prompting, richer system monitoring via SystemLogger(), quieter logs, and broader ONNX export support (including Jetson JetPack 6), plus improved contributor attribution in the docs. ๐
SAM 3 text prompting made plugโandโplay ๐งฉ
SimpleTokenizer().bpe_simple_vocab_16e6.txt.gz.SAM3SemanticPredictor and SAM3VideoSemanticPredictor no longer take a bpe_path argument.clip isnโt installed, Ultralytics auto-installs it from the Ultralytics CLIP repo.SystemLogger() gains realโtime throughput metrics ๐
SystemLogger.get_metrics() now supports rates=True to report disk and network MB/s:
read_mbs, write_mbsrecv_mbs, sent_mbsrates=False) still returns cumulative MB since logger init."0", "1").Centralized warning suppression for cleaner logs ๐
warnings.filterwarnings(...) calls into ultralytics/utils/__init__.py.ultralytics/engine/exporter.py)ultralytics/nn/text_model.py)ultralytics/utils/plotting.py)ultralytics/utils/callbacks/tensorboard.py)ONNX export updated to support ONNX 1.20.0+ ๐ฆ
onnx>=1.12.0,<2.0.0 instead of capping at 1.19.1 for:
export_onnxexport_saved_model (TensorFlow route)pyproject.toml updated to note MacOS testing up to onnx==1.20.0.Docs & authorship improvements ๐
SAM3SemanticPredictor / SAM3VideoSemanticPredictor without bpe_path.mkdocs.yml nav updated to drop the removed tokenizer_ve reference page.docs/mkdocs_github_authors.yaml expanded with many new GitHub usernames and avatars, plus aliases and Ultralytics team mappings for better contributor attribution.CI / tooling maintenance ๐งฐ
actions/download-artifact bumped from v6 โ v7 (Node.js 24 runtime) in publish.yml.8.3.239 in ultralytics/__init__.py for clear release tracking.Easier SAM 3 text-based segmentation ๐ฌ
bpe_path wiring.sam3.pt and go.Better monitoring for training and deployment ๐
SystemLogger.get_metrics(rates=True) lets you watch live I/O throughput, which is especially helpful when:
Quieter, more focused logs ๐คซ
More robust ONNX export, including Jetson ๐ฅ๏ธ
<2.0.0 (including 1.20.0) unblocks environments like Jetson JetPack 6 that depend on newer ONNX.Improved documentation and community recognition ๐ค
Overall, v8.3.239 is a qualityโofโlife release: SAM 3 is simpler to use, monitoring is more informative, logs are tidier, and ONNX export is more futureโproofโwithout breaking existing workflows. โ
CLIP tokenizer functionality and remove the need of bpe_simple_vocab for SAM3 by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22958SystemLogger() improvements by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22965Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.238...v8.3.239
Large pass standardizing terminology (pretrained vs pre-trained), cleaning grammar, clarifying Explorerโs deprecated status and pointing users to Ultrโฆ
Ultralytics v8.3.238 is a refinement-heavy release that makes SAM3 concept/video segmentation more robust, faster to work with, and easier to install, while also stabilizing model export (especially TFLite/ONNX) and polishing docs & CI workflows. ๐ง ๐งฉ
SAM3 architecture refactors (core of this release) ๐งฑ
sam_forward_feature_levels) reduces duplicated code and unifies how multi-scale features + positional encodings are produced._prepare_backbone_features), centralizing multi-prompt batching and reducing redundant computation.SAM3 stability & correctness fixes ๐ง
SAM3SemanticPredictor no longer corrupts its cached backbone features when you query the same image with different numbers of text promptsโfixes shape mismatch crashes in โencode once, query many timesโ workflows.ftfy, regex, iopath) are auto-checked and prompted for install instead of crashing with ModuleNotFoundError.from ultralytics.models.sam import ...).SAM3 video API & docs improvements ๐ฅ
from ultralytics.models.sam import SAM3VideoSemanticPredictor.v8.3.237.Export & deployment reliability ๐ซ
--half and --format=onnx and device=cpu are all trueโprevents ONNX-specific code running for other formats and causing avoidable errors.half=True with nms=True.torch<1.10, and the exporter now asserts torch>=1.10 for MNN to avoid runtime segmentation faults.onnx>=1.12.0,<=1.19.1 with comments that this remains until onnx_graphsurgeon supports newer ONNX.CI, tooling & infra ๐๏ธ
SlowTests, and Slack alerts will also trigger if SlowTests failโmaking flaky or long-running issues more visible.apt-get update, installs libicu-dev, and clears apt lists to reduce image bloat.actions/upload-artifact bumped from v5 โ v6 (Node 24 runtime).Examples & ecosystem tweaks ๐
.gitignore now allows examples/**/requirements.txt; new example-specific requirements were added (e.g., for ONNXRuntime/OpenCV demos).save_video=False by default).Docs & UX polish ๐
pretrained vs pre-trained), cleaning grammar, clarifying Explorerโs deprecated status and pointing users to Ultralytics HUB.More reliable SAM3 workflows for research & production ๐ง ๐
Smoother out-of-the-box experience for SAM3 users ๐ก
from ultralytics.models.sam import ...) make it easier to copy examples and reduce breakage if internals move.Safer, more predictable model export across formats ๐ฆ
Higher CI signal quality & maintainability โ๏ธ
Clearer documentation for a wide audience ๐โจ
SAM3VideoSemanticPredictor by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/22945half=True and nms=True by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22946ultralytics 8.3.238 Refactor SAM3 forward convolutions by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22942Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.237...v8.3.238
Ultralytics 8.3.237 adds full SAM 3 image & video segmentation support (including text & exemplar prompts and tracking), improves export behavior (ONN
Ultralytics 8.3.237 adds full SAM 3 image & video segmentation support (including text & exemplar prompts and tracking), improves export behavior (ONNX FP16 on CPU, Edge TPU/IMX deps), and polishes training, validation, and docs for smoother dayโtoโday use. ๐
๐ง SAM 3 integration (image & video)
build_sam3.py) with ViT backbone, transformer encoder/decoder, text encoder, geometry encoders, and video tracker (SAM3Model, SAM3SemanticModel and SAM3-specific modules).sam3.pt and builds the SAM 3 tracker via build_interactive_sam3.๐๏ธ New SAM 3 predictors & APIs
SAM3Predictor โ SAM3-style interactive segmentation.SAM3SemanticPredictor โ text & exemplar based concept segmentation on images.SAM3VideoPredictor โ video tracking with box prompts.SAM3VideoSemanticPredictor โ video concept tracking (text + boxes + masklets).ultralytics.models.sam.__all__ and SAMโs task_map, so SAM("sam3.pt") routes to the right predictor.๐งฉ SAM pipeline upgrades (SAM / SAM2 / SAM3)
Predictor.setup_source now accepts an explicit stride, and SAM/SAM2/SAM3 predictors use it to enforce square image sizes and consistent feature shapes.MemoryEncoder and MaskDownSampler (interpolation to fixed sizes, higher-res mask handling).get_abs_pos, concat_rel_pos).SAM2Model.set_imgsz generalized (no longer hardcoded stride 16) and specialized SAM3Model added with improved mask post-processing and nonโoverlap suppression.๐ผ๏ธ SAM 3 docs & usage examples
docs/en/reference/models/sam/sam3/* for all SAM3 modules (encoder, decoder, geometry encoders, text encoder, tokenizer, etc.).docs/en/models/sam-3.md rewritten from โAPI previewโ into concrete usage:
sam3.pt from the SAM 3 repo.bpe_simple_vocab_16e6.txt.gz) for text prompts.SAM3SemanticPredictor)SAM3VideoPredictor)SAM3VideoSemanticPredictor)SAM("sam3.pt") while clarifying the difference vs. concept segmentation.๐ข ONNX FP16 export on CPU
half=True on CPU applies only to GPU TorchScript export.half=True on CPU:
onnxruntime.transformers.float16.convert_float_to_float16(keep_io_types=True).๐ง Edge TPU & IMX export dependency management
export_edgetpu: shell apt-get calls replaced with centralized check_apt_requirements(["edgetpu-compiler"]).export_imx: Java installs now use check_apt_requirements() for:
openjdk-21-jre on Ubuntu / Debian Trixie.openjdk-17-jre on Raspberry Pi / Debian Bookworm.check_apt_requirements() now runs apt update with check=True, surfacing update failures instead of silently ignoring them.๐ More flexible resumeโtraining overrides
save_period, workers, cache, patience, time, freeze, val, plots.๐ RT-DETR validation scaling fix
ratio_pad injection and replaced with a clean Compose([]).scale_preds() override to make scaling behavior explicit and safe for future changes.๐งญ OBB plotting robustness
OBBValidator.plot_predictions() reworked to:
plot_images() directly, avoiding redundant xywh2xyxy conversions and mismatched formats.๐ Data augmentation docs: scale range clarified
scale hyperparameter doc updated from โโฅ 0.0โ to 0.0 - 1.0 in the guide and macro tables, matching realโworld usage and preventing unstable configs.๐ง Richer segmentation capabilities with SAM 3
๐งช More predictable, robust SAM/SAM2/SAM3 behavior
stride handling avoids subtle spatial shape bugs and mismatches in encoders/decoders.๐ Better export experience across devices
๐งช Easier experiment management & training control
๐ฏ More reliable evaluation & visualization
ratio_pad hacks and is prepared for future scaling logic via scale_preds().๐ Clearer documentation & safer configs
scale augmentation bounds (0โ1) help avoid extreme settings that could degrade training stability or accuracy.check_apt_requirements function by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/22925predictions.json for RTDETR by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22817ultralytics 8.3.237 SAM3 integration by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22897Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.236...v8.3.237
Ultralytics 8.3.236 adds first-class Axelera Metis AIPU export and inference support for YOLO models, plus several documentation, integration, and too
Ultralytics 8.3.236 adds first-class Axelera Metis AIPU export and inference support for YOLO models, plus several documentation, integration, and tooling improvements that make deployment, tracking, and docs navigation smoother. ๐
๐ฅ New Axelera export format for Metis AIPU
axelera export target in the exporter:
yolo export model=yolo11n.pt format=axeleramodel.export(format="axelera")yolo11n_axelera_model/ containing:
.axm modelmetadata.yaml with classes, image size, etc.๐ง Axelera compilation & quantization pipeline
.axm.CompilerConfig presets for YOLO11 vs YOLOv8 for stability and performance.int8=True for mixed-precision AIPU export.opset=17 for ONNX export to satisfy compiler requirements.data=coco128.yaml for Axelera if not provided.โ๏ธ Axelera runtime backend in AutoBackend
*_axelera_model/ path..axm file inside the directory.axelera.runtime.op.load(...).metadata.yaml to keep YOLOโs normal postprocessing pipeline.yolo predict model=yolo11n_axelera_model source=...YOLO("yolo11n_axelera_model")(source)๐งช CI & tests for Axelera support
test_export_axelera:
๐งฉ New system-level & Python helpers
check_apt_requirements():
apt packages (via dpkg -l) and attempts sudo apt install -y ....IS_PYTHON_3_10 to gate Axelera export.TORCH_2_8 for version checks.๐ Axelera integration docs upgraded from โcoming soonโ to usable
docs/en/integrations/axelera.md completely rewritten:
apt repo setup.model.export(format="axelera") / yolo export ...yolo11n_axelera_model.๐ง New Neptune integration documentation
docs/en/integrations/neptune.md and link wired into Integrations index.project= slug usage (e.g. workspace/name).๐บ Updated prediction tutorial video
predict mode docs now embed a new YouTube tutorial focused on:
๐งญ Docs navigation, search, and localization improvements
search plugin set to enabled: false.build_docs.py now deletes search.json from the built site./sitemap.xml requests (from Weglot hreflang handling) and returns an empty sitemap to avoid 404s.hreflang attributes to detect languages.chat.min.js bumped to v0.1.6 via CDN for a smoother embedded Ultralytics LLM experience.๐งช Example scripts hardening
ort.get_available_providers() and choose CUDAExecutionProvider and/or CPUExecutionProvider as available.np.array(...).flatten() and explicit int casting to avoid index shape issues.--img argument instead of a hardcoded image path.urllib3 in RTDETR ONNX example bumped to 2.6.0 for up-to-date HTTP stack.Unlock high-performance edge deployment on Axelera Metis โก
export(format="axelera").Reduce friction in environment setup ๐ ๏ธ
check_apt_requirements() and structured version checks help users automatically install system dependencies and validate Python/Torch versions needed for Axelera.Keep documentation aligned with real-world usage ๐
Improve docs browsing and internationalization UX ๐
Make examples more robust across environments ๐ป
Overall, 8.3.236 is a deploymentโfocused release: it brings YOLO into the Axelera Metis ecosystem, strengthens experiment tracking and documentation UX, and polishes supporting tooling so users can deploy and iterate more confidently. โจ
ultralytics 8.3.236 add Axelera export for YOLO on Metis AIPU by @ambitious-octopus in https://github.com/ultralytics/ultralytics/pull/22802Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.235...v8.3.236
Ultralytics v8.3.235 makes IMX500 exports more powerful (now with YOLO11 instance segmentation), modernizes export backends (CoreML, ExecuTorch, ONNX/
Ultralytics v8.3.235 makes IMX500 exports more powerful (now with YOLO11 instance segmentation), modernizes export backends (CoreML, ExecuTorch, ONNX/Torch), and improves logging and Jetson stabilityโwhile lifting an older PyTorch pin so you can safely use newer versions. ๐
๐ง Sony IMX500: Full YOLO11 instance segmentation support
segment_forward path and segmentation handling in ultralytics.utils.export.imx.Exporter.__call__ to accept segmentation models and enforce int8=True and nms=True for segment too.๐ IMX500 docs & deployment examples upgraded
yolo11n-seg_imx_model.๐ IMX export robustness & dependency updates
sony-custom-layers to edge-mdt-cl for custom layers/NMS.imx500-converter[pt]>=3.17.3, edge-mdt-cl<1.1.0, edge-mdt-tpc>=1.2.0, model-compression-toolkit>=2.4.1, pydantic<=2.11.7.onnx_export_patch() context to work around PyTorch 2.9+ ONNX export issues.edge-mdt-cl NMS ops and onnxruntime-extensions.๐ CoreML & ExecuTorch export/inference modernized
coremltools version raised from >=8.0 to >=9.0.numpy>=1.14.5,<=2.3.5 for CoreML to avoid breakage with newer numpy prereleases.pyproject.toml export extrasexport_coreml in the exporter1.0.0 to 1.0.1 for both export and inference paths.setuptools<71.0.0 to avoid known compatibility issues.๐งช IMX export test re-enabled and tightened
test_export_imx now:
MODEL constant instead of hardโcoded yolov8n.pt.๐ Python export Docker image: PyTorch pin removed (current PR focus)
torch<=2.8.0 in pyproject.toml.numpy==1.26.4 for Sony IMX export stability.onnx_export_patch() helper ensures ONNX export behaves correctly with Torch 2.9+ by temporarily disabling Dynamo during export.๐ Jetson JetPack 6 Docker: safer ONNX version
Dockerfile-jetson-jetpack6 now patches pyproject.toml to enforce onnx>=1.12.0,<1.20.0.onnx 1.20.0 on Jetson JetPack 6.๐ ClearML & Neptune logging made futureโproof
trainer.plots and trainer.validator.plots."batch" (debug/perโbatch images).results.png, confusion_matrix.png, etc.โso new/custom plots are automatically logged.๐ง Dependency installation behavior hardened
attempt_install no longer passes --prerelease=allow to uv pip install.๐ New reference docs entries
ultralytics.utils.export.imx.segment_forwardultralytics.utils.patches.onnx_export_patch๐ Version bump
__version__ updated from 8.3.234 to 8.3.235.โ Better Sony IMX500 support out of the box
โ๏ธ Modern, stable export backends
๐งช More reliable ONNX & Torch 2.9+ workflows
<=2.8.0 pin in the export Docker while adding onnx_export_patch() means:
๐ก๏ธ Safer Jetson deployments
onnx <1.20.0 for JetPack 6 avoids known TFLite export bugs.๐ Richer experiment tracking with minimal maintenance
๐งฑ More predictable environments
uv decreases surprise breakages.imx500-converter 3.17.3 release and Segmentation support by @ambitious-octopus in https://github.com/ultralytics/ultralytics/pull/22146Dockerfile-jetson-jetpack6 to pin onnx<1.20.0 by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22864ultralytics 8.3.235 Remove torch 2.8.0 pin for Sony IMX export by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/22874Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.234...v8.3.235
ultralytics 8.3.234 Security fix: ast.literal_eval for safer evaluation of metadata strings by @onuralpszr in https://github.com/ultralytics/ultralytiโฆ
Ultralytics 8.3.234 is a small but important maintenance release focused on safer model metadata handling, more robust training augmentations, and smoother docs & toolingโwith no breaking changes for typical YOLO users. ๐
๐ Safer metadata parsing in model export (current PR #22847)
eval with ast.literal_eval when reading string metadata (e.g. imgsz, names, kpt_shape, kpt_names, args) in torch_to_mnn inside the autobackend.eval calls in cfg2task with # nosec B307 to clearly document that they are safe, controlled uses on known attributes.๐งช More robust Albumentations label handling (#22846)
labels["cls"] from Albumentations transforms is always stored as a 2D column array (num_boxes, 1) instead of a 1D array.๐ Dependency & Python version alignment for dev installs (#22830)
zensical dev dependency to require Python 3.10+ (matching what the docs tooling already expects).๐ฅ Improved segmentation docs with a video tutorial (#22825)
๐ค Upgraded in-docs LLM chat widget (#22832, #22845, #22861)
mkdocs.yml from v0.0.8 โ v0.0.9 โ v0.1.0 โ v0.1.2.โจ JavaScript & CSS cleanups in docs UI (#22842, #22844)
Number.parseInt / Number.parseFloat, Number.isNaN, and cleaner regexes.!important flags and clarifying language switcher and banner styles.๐ Documentation & link updates (#22823, #22829)
onnxruntime-gpu wheel install to a clean Ultralytics GitHub asset link, making commands easier to copy and more reliable.๐ข Version bump
8.3.233 โ 8.3.234.๐ก๏ธ Higher security when loading/exporting models
eval with ast.literal_eval significantly reduces the risk of arbitrary code execution from crafted metadata strings (e.g. in exported models).โ๏ธ More stable training with Albumentations
(num_boxes, 1) shape for class labels avoids hidden bugs and crashes in data pipelines.๐จโ๐ป Smoother development experience
zensical in dev extras means fewer dependency resolution headaches for contributors and power users working on the repo.๐ Better learning and onboarding
๐ค Improved docs assistant experience
Overall, 8.3.234 is a safe, drop-in update: you can upgrade to benefit from better security, stability, and docs UX with no changes to your existing YOLO training or inference code. โ
onnxruntime-gpu download from Ultralytics assets by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/22823ultralytics 8.3.234 Security fix: ast.literal_eval for safer evaluation of metadata strings by @onuralpszr in https://github.com/ultralytics/ultralytics/pull/22847Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.233...v8.3.234
Ultralytics 8.3.233 makes Sony IMX model export more robust across Debian/Ubuntu/Raspberry Pi systems, adds a comingโsoon Axelera edgeโAI integration
Ultralytics 8.3.233 makes Sony IMX model export more robust across Debian/Ubuntu/Raspberry Pi systems, adds a comingโsoon Axelera edgeโAI integration doc, and improves Jetson + docs tooling for smoother deployments and documentation. ๐
๐งฉ Sony IMX exporter: Debian & Java handling improved (main change)
ultralytics.utils:
is_debian() helper.IS_DEBIAN, IS_DEBIAN_BOOKWORM, IS_DEBIAN_TRIXIE, plus IS_UBUNTU and existing IS_RASPBERRYPI.export_imx now installs the correct Java version per platform:
sudo when available, and logs what itโs doing for clarity.๐ง New Axelera integration docs (coming soon)
docs/en/integrations/axelera.md page and linked it in the integrations index and mkdocs.yml.๐ค NVIDIA Jetson guide updates
onnxruntime-gpu 1.23.0 on JetPack 6 + Python 3.10 via Jetson AI Lab wheel.onnxruntime-gpu 1.20.0 example as a fallback.๐ Axelera doc link cleanโup
www.ultralytics.com URLs:
๐งน Quieter, cleaner docs builds
docs/build_docs.py now uses:
git clone -q --depth=1 --single-branch -b main ...hub-sdk and docs repos.๐ Utils reference docs extended
ultralytics.utils.__init__.is_debian to the reference docs.๐ท๏ธ Version bump
8.3.233.โ More reliable Sony IMX deployments on edge Linux systems
๐ Better crossโplatform support story
IS_DEBIAN_BOOKWORM, IS_DEBIAN_TRIXIE, IS_UBUNTU, IS_RASPBERRYPI make it easier to:
๐ Futureโproof edge inference with Axelera
format="axelera" once runtime wheels are available.โ๏ธ Smoother NVIDIA Jetson experience
onnxruntime-gpu instructions for JetPack 6 reduce install friction and compatibility issues when exporting certain formats.๐ Cleaner docs & navigation
Overall, 8.3.233 is a stability and platformโsupport focused release, especially valuable if youโre exporting to Sony IMX, working on Debian/Ubuntu/Raspberry Pi, planning Axelera edge deployments, or using NVIDIA Jetson devices. ๐๐ก
ultralytics 8.3.233 Add Debian OS + Java install support to Sony IMX exporter by @onuralpszr in https://github.com/ultralytics/ultralytics/pull/22814Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.232...v8.3.233
Ultralytics 8.3.232 is a small but important release that fixes OBB export behavior for more reliable deployments, improves ARM64 Docker images, and s
Ultralytics 8.3.232 is a small but important release that fixes OBB export behavior for more reliable deployments, improves ARM64 Docker images, and significantly polishes documentation UX, search, and SAM 3 docs. ๐
๐ง OBB export fix (core model behavior)
ExporterDetectionModel.forward.8 for OBB NMS instead of scaling by the number of classes.๐ง Docker: ARM64 image modernized
arm64v8/debian:bookworm-slim to arm64v8/ubuntu:24.04.apt with apt upgrade -y for up-to-date, more secure images.๐งฎ GPU/cuDNN compatibility helper
yolo-common-issues.md to check:
๐ SAM 3 documentation aligned with Metaโs release
pip install ultralytics.๐ Docs search experience upgrade
๐งญ Docs navigation & links cleanup
.md files; converts them to trailing-slash internal paths.models/yolov5.md).๐ Mermaid diagrams in docs
pymdownx.superfences configuration in mkdocs.yml.```mermaid blocks.๐ Docs build & UI tweaks
--strict from zensical build to reduce build failures on minor warnings.mkdocs_github_authors.yaml.More reliable OBB deployments ๐งฑ
Smoother cross-platform usage & CI ๐งช
--strict) reduces CI friction and local build failures.Simpler troubleshooting for GPU issues ๐ง
Better documentation experience ๐
Overall, 8.3.232 is a stability and UX-focused release: production users gain a critical OBB export fix, while everyone benefits from better docs, search, and environment support. โจ
ultralytics 8.3.232 Fix OBB NMS export lower box count by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22783Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.231...v8.3.232
โ No breaking changes to YOLO11 models
v8.3.231 is a docs and toolingโfocused release ๐ that introduces a new Zensical-powered documentation pipeline with rich API reference pages, better HTML post-processing, and multiple reliability and usability improvementsโwithout changing core YOLO11 model behavior.
๐ New Zensical documentation engine (major)
mkdocs build to zensical build with a revamped docs/build_docs.py.build_reference_docs pipeline that:
mkdocs-ultralytics-plugin for better metadata, JSON-LD, authors, and social cards.๐งฉ MiniJinja-based docs macros (templating refresh)
render_jinja_macros).mkdocs.yml extra values,ultralytics/cfg/default.yaml,indent filter to stay compatible with existing macros.docs/en, docs/macros) are backed up and restored around the build to keep the repo clean.๐งฑ Reference docs re-architecture
docs/build_reference.py rewritten to:
__init__ docstring info into class docs intelligently (no runtime behavior changes).๐จ Docs UX & content polish
/cuda-zone โ /cuda.doc.dvc.org domain.CASIA-LMC-Lab/FastSAM repository.!!! note, !!! warning) so they render reliably.--8<-- "docs/macros/..." includes, consistent with the new macro pipeline.โ๏ธ Settings & concurrency reliability
SettingsManager._load to call super().update(...) instead of self.update(...).๐ Apple MPS & metrics cleanup
OKS_SIGMA to float32 in metrics for more consistent pose evaluation behavior.๐ผ๏ธ Data format documentation clarification
uint8, in addition to (channel, height, width) layout and .tiff/.tif extensions. Prevents subtle runtime issues when preparing multispectral data. ๐๐ป Windows workflow documentation
train.md) and validation (val.md) docs now:
if __name__ == "__main__":
...
๐งน Docstring cleanup for codebase
Examples: and Attributes: blocks from many class __init__ docstrings.๐งพ Tooling & repo hygiene
mkdocs-ultralytics-plugin dev dependency to >=0.2.2 to support the new docs flow.uv.lock to .gitignore to avoid committing local UV lock files.JUPYTER_PLATFORM_DIRS export from the docs CI workflow.๐ง Richer, easier-to-navigate API docs
๐ ๏ธ More robust and maintainable docs pipeline
๐ Safer multi-process / multi-instance usage
SettingsManager read behavior reduces the chance of config corruption or race conditions when multiple processes touch settings simultaneously.๐ป Smoother platform-specific experiences
๐ฐ๏ธ Fewer user mistakes with advanced data / integrations
uint8 guidance prevents subtle multispectral dataset bugs.โ No breaking changes to YOLO11 models
uint8 by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22756SettingsManager to avoid race conditions in parallel instances by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22762ultralytics 8.3.231 New Zensical docs refresh by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22761Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.230...v8.3.231
ultralytics 8.3.230 is a stability and UX-focused release that fixes color issues in visualizations, improves TensorRT and device handling, and loosen
ultralytics 8.3.230 is a stability and UX-focused release that fixes color issues in visualizations, improves TensorRT and device handling, and loosens dependency constraints for smoother installs, along with some docs and CI polish. ๐จโ๏ธ๐
๐จ Accurate colors for visualizations (Tensor + PIL) [@Y-T-G, #22734]
pil=True plots return proper RGB images instead of visually โoffโ colors.Results.plot() now delegates to annotator.result(pil) for consistent behavior.โ๏ธ More robust TensorRT dynamic input handling [@Laughing-q, #22729]
๐ง Safer device selection for CPU / MPS [@Y-T-G, #22740]
select_device("cpu") or select_device("mps"), CUDA_VISIBLE_DEVICES is now set to "" instead of "-1".๐ฆ Looser dependency version pins for better compatibility [@glenn-jocher, #22721]
numpy, matplotlib, opencv-python, pillow, pyyaml, requests, scipy, torchvision, psutil, polars.torch>=1.8.0torch>=1.8.0,!=2.4.0 (skips known-bad 2.4.0 on Windows CPU).ultralytics-thop now uses >=2.0.18 instead of an upper cap.๐ผ๏ธ Docs UX + SEO improvements [@sergiuwaxmann, @glenn-jocher, @RizwanMunawar]
page metadata, preventing template errors.J1BaCqytBmA), aligned with current YOLO11 workflows.๐งช CI & workflow maintenance [@dependabot[bot]]
actions/checkout@v6 (including CI, docs, docker, link checks, publishing, mirroring).๐จ More trustworthy visual outputs
pil=True for plotting or UI integrations.๐งฉ Smoother deployment on TensorRT and varied input sizes
๐ป More reliable CPU/MPS runs and Ultralytics HUB integration
CUDA_VISIBLE_DEVICES properly avoids crashes and confusing CUDA behavior on systems where GPUs must be โhidden.โ๐ฆ Easier installs and upgrades
numpy, torch, torchvision).๐ Better docs experience & onboarding
๐๏ธ More robust CI/CD
actions/checkout@v6 keeps the projectโs automation current, aiding long-term reliability of builds, tests, and releases.Overall, v8.3.230 is a quality-focused release: if you visualize results, run dynamic TensorRT models, rely on CPU/MPS, or manage modern Python stacks, you should see more stable and predictable behavior. โ
dynamic TensorRT model by setting the max_shape as input_shape by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22729CUDA_VISIBLE_DEVICES to empty string instead of -1 to avoid Windows crash by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22740ultralytics 8.3.230 Fix color conversion for Tensor inputs and PIL plots by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22734Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.229...v8.3.230
Dependency upper bounds in pyproject.toml (PR #22701) to avoid breaking changes in numpy, torch, opencv, pillow, polars, etc.
YOLO 8.3.229 focuses on much faster COCO instance segmentation validation (~3ร), tighter dependency and environment controls, improved multiโGPU behavior, and a broad documentation refresh (Jetson, datasets, guides) for smoother realโworld use. ๐๐ง
โก 300% Faster COCO Segmentation Validation (PR #22651)
faster_coco_eval RLE encoding with a native, optimized RLE pipeline.ops.scale_masks API with ratio_pad support.๐ Safer, More Predictable Environments
pyproject.toml (PR #22701) to avoid breaking changes in numpy, torch, opencv, pillow, polars, etc.torch constraints to avoid known Windows issues.python=3.12 and torch>=2.9 with clear errors.uv from the base image (PR #22709).๐ฅ๏ธ More Robust MultiโGPU & CI
coco128 training for better multiโGPU validation (PR #22710).batch_size >= dataset_size (PR #22714): safely falls back to batch_size=1 to avoid failures on tiny datasets.2.329.0 (PR #22707).๐ Major Documentation & Guide Updates
๐ Docs Build & Chat Widget Improvements
script, pre, code, textarea content and regexโbased HTML cleanups (PRs #22676, #22678).chat.js v0.0.6 with separate chatExamples and searchExamples for better inโdocs help (PRs #22680, #22691, #22696).๐จ Repo & Config Quality
print-width updated to 120 and applied across docs JS/HTML/CSS plus dataset YAML for cleaner diffs and readability (PR #22706).๐ฅ & Learning Experience
Faster Experiment Cycles for Segmentation
More Stable, Reproducible Installs
More Reliable MultiโGPU Training & Testing
Better Docs for Real Deployments
Smoother Documentation UX
Overall, v8.3.229 is a performanceโ and robustnessโoriented release: your COCO segmentation validation is faster, environments are safer, multiโGPU workflows are more predictable, and the documentation better reflects how to run YOLO11 in real systems. ๐๐ฅ
script tags in JS minify by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22678python>=3.8<3.12 and torch<2.9 for IMX export by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22673ultralytics/llm@v0.0.5 by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22691print-width 120 by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22706batch_size is greater than the total dataset size by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22714pip install uv from Dockerfile by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22709gpu-latest runners in ci.yml by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22710ultralytics 8.3.229 300% faster COCO Segmentation val by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22651Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.228...v8.3.229
CLIP/MobileCLIP tokenization is now safer by default with a new truncate option, preventing crashes on long prompts, alongside improved progress-bar r
CLIP/MobileCLIP tokenization is now safer by default with a new truncate option, preventing crashes on long prompts, alongside improved progress-bar readability, better docs search/chat UX, augmentation docs enhancements, and more reliable ARM CI. ๐
CLIP/MobileCLIP safety upgrade (priority)
truncate: bool = True to CLIP.tokenize and MobileCLIPTS.tokenize to handle overlength text gracefully.truncate=False for debugging or exact validation.Progress bar readability
1.5s/it instead of 0.0it/s). Thanks @fcakyon (PR #22660).Docs chat/search experience
Data augmentation docs polish
augmentations argument for custom Albumentations pipelines to the macro table (PR #22615).hsv_s, not hsv_h) for accuracy (PR #22645).CI reliability
More robust text models โจ
truncate=False) for developers who need exact-length checks or debugging.Clearer training feedback ๐
Better docs experience ๐
More flexible augmentations ๐งช
augmentations unlocks custom Albumentations transforms via Python API, enabling advanced experimentation across detect/segment/pose/obb tasks.Improved contributor reliability ๐งน
Example usage (strict vs safe tokenization):
from ultralytics.nn.text_model import CLIP, MobileCLIPTS
clip_model = CLIP(size="ViT-B/32", device="cpu")
safe_tokens = clip_model.tokenize("a very long caption ...", truncate=True) # default, avoids errors
strict_tokens = clip_model.tokenize("a very long caption ...", truncate=False) # may raise if too long
mobileclip = MobileCLIPTS(device="cpu")
tokens = mobileclip.tokenize(["caption 1", "caption 2"]) # safely truncated by default
chat.js bot by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22639ultralytics 8.3.228 Fix CLIP token truncation by @h13-0 in https://github.com/ultralytics/ultralytics/pull/22650Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.227...v8.3.228
Faster patching of vulnerabilities and tooling updates via daily Dependabot runs. โก
Stability-focused release: pins ONNX to avoid export breakages, improves Edge TPU export setup on modern Linux, and includes several quality-of-life updates across docs, dependencies, and tooling. โ ๐ ๏ธ
onnx>=1.12.0,<=1.19.1 to ensure reliable ONNX and TensorFlow SavedModel exports, especially in Conda environments. (See PR #22628) ๐scipy-stubs>=1.14.1.4 for Python 3.10+. (See PR #22634) ๐ง .gitignore to prevent large media commits. (See PR #22635) ๐๐ซexport and smoother CI. โ
Quick tip: If you hit ONNX-related export issues, ensure ONNX is pinned locally:
pip install "onnx<=1.19.1"
scipy-stubs dependency to require version >=1.14.1.4 for Python 3.10+ by @onuralpszr in https://github.com/ultralytics/ultralytics/pull/22634citation of african-wildlife dataset by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/22632ultralytics 8.3.227 Pin onnx<=1.19.1 for Conda compatibility by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/22628Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.226...v8.3.227
Security-first release that replaces unsafe eval() with safe parsing across the codebase, alongside quality-of-life upgrades: custom Albumentations in
Security-first release that replaces unsafe eval() with safe parsing across the codebase, alongside quality-of-life upgrades: custom Albumentations in Python API, simplified NCNN export via PNNX, multi-GPU training stability fixes, and improved installer/logging and docs. ๐โ๏ธ
Security & Parsing (priority)
Data Augmentation
augmentations parameter in model.train(...). ๐จExport/Deployment
Training & Stability
val=False by ensuring final_epoch is always defined; added CUDA test coverage. ๐งชInstallation & Tooling
check_requirements() logs and error handling, especially with the uv package manager (stderr merged into stdout; better fallback behavior). ๐ฆDocs & UX
Safer by default
Better training experience
Smoother export and deployment
More reliable tooling and docs
Example: Using custom Albumentations in Python API
import albumentations as A
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
custom_transforms = [
A.Blur(blur_limit=7, p=0.5),
A.CLAHE(clip_limit=4.0, p=0.5),
]
model.train(data="coco8.yaml", epochs=100, imgsz=640, augmentations=custom_transforms)
Helpful links:
KITTI notebook in docs by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/22592final_epoch for DDP training when val=False by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22607check_requirements() missing output when using uv package manager by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22623ultralytics 8.3.226 โป๏ธ Replace eval() with ast.literal_eval() for security by @onuralpszr in https://github.com/ultralytics/ultralytics/pull/22597Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.225...v8.3.226
SAM-2 interactive predictor now uses 0-based object IDs (breaking change) ๐
Ultralytics 8.3.225 adds first-class KITTI dataset support for YOLO11, improves model checkpoint loading reliability, cleans up docs/tests, and makes Jetson builds more reproducible. ๐๐ง โ๏ธ
New: KITTI dataset support and docs ๐
kitti.yaml with classes and download link.Safer checkpoint loading for SAM/SAM2 ๐ก๏ธ
torch_load helper used for SAM and SAM2 checkpoint loading for better cross-version PyTorch compatibility.SAM-2 interactive predictor now uses 0-based object IDs (breaking change) ๐
Jetson JetPack 4 Docker build reliability ๐ง
Docs polish and CI stability ๐โ
Faster start on autonomous driving research ๐ฆ
More reliable model loading across environments ๐
Clearer APIs and fewer indexing mistakes ๐งญ
Reproducible hardware builds ๐งช
Better developer and user experience โจ
Quick start on KITTI with YOLO11:
yolo detect train data=kitti.yaml model=yolo11n.pt epochs=100 imgsz=640
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.train(data="kitti.yaml", epochs=100, imgsz=640)
torch_load patch for weights_only cases by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22577integrations/executorch.md examples by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22581Executorch test by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22582ultralytics 8.3.225 New KITTI dataset by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/22539Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.224...v8.3.225
Ultralytics 8.3.224 boosts segmentation performance and stability on GPUs, adds CPU-only ExecuTorch export/benchmarks for YOLO11, fixes multiโGPU eval
Ultralytics 8.3.224 boosts segmentation performance and stability on GPUs, adds CPU-only ExecuTorch export/benchmarks for YOLO11, fixes multiโGPU evaluation and ONNX device selection, and improves logging + docs for a smoother developer experience. ๐
boxes live on the same device as masks and avoids slow Python loops on CUDA.dist.gather_object and cleans up worker memory.device_id to CUDAExecutionProvider to avoid accidental GPU 0 usage.download-binaries for ONNX Runtime to reduce setup friction and version conflicts.cuda:1) is honored, improving reliability in multi-GPU environments.Quick tips:
yolo export model=yolo11n.pt format=executorch device=cpu
jdict for COCO evaluation by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22541ultralytics 8.3.224 Accelerate crop_mask on GPU with is_cuda check by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22575Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.223...v8.3.224
Ultralytics 8.3.223 improves post-processing correctness in FastNMS, stabilizes RT-DETR validation, and refactors TensorFlow/TFLite/Edge TPU/TFJS expo
Ultralytics 8.3.223 improves post-processing correctness in FastNMS, stabilizes RT-DETR validation, and refactors TensorFlow/TFLite/Edge TPU/TFJS export for cleaner APIs and more reliable exportsโplus better FLOPs accuracy via a dependency bump. ๐
FastNMS fix (priority) ๐ง
scores in-place when use_triu=False, ensuring alignment with sorted indices for consistent outputs in downstream consumers like NMSModel.RT-DETR validation stability โ
ratio_pad is correctly formatted during validation to prevent crashes and stabilize evaluation.Export refactor: TensorFlow/TFLite/Edge TPU/TFJS โป๏ธ
ultralytics.utils.export.engine and ultralytics.utils.export.tensorflow with wrappers to avoid fragile ops and improve reliability.Accurate FLOPs reporting ๐
ultralytics-thop>=2.0.18 for better FLOPs calculations, improving benchmarking across models (e.g., YOLO11/YOLO26).IMX export message clarity ๐งญ
Standardized dataset class names ๐บ๐ธ
More correct and stable NMS outputs ๐ก๏ธ
scores, preventing subtle ranking issues and improving result consistency for all users relying on FastNMS.Fewer validation crashes for RT-DETR ๐
ratio_pad handling avoids runtime errors and increases reliability during validation and metrics computation.Easier, more reliable exports across ecosystems ๐
Better, more consistent benchmarks ๐ฌ
ultralytics-thop improves FLOPs accuracy and compatibility, leading to more trustworthy comparisons across models and environments.Clearer developer experience โจ
Quick tip to upgrade:
pip install -U ultralytics
Thanks to contributors @Y-T-G, @Laughing-q, @glenn-jocher, and @lakshanthad! ๐
ultralytics-thop>=2.0.18 by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22526saved_model/pb/edgetpu/tfjs formats by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22115ratio_pad in RTDETRDataset by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22525ultralytics 8.3.223 Sort scores inplace in FastNMS with use_triu=False by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22537Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.222...v8.3.223
TFLite INT8 export is now enabled for end2end models, plus improved quantized NMS accuracy and full IMX500 Classification supportโexpanding fast, smal
TFLite INT8 export is now enabled for end2end models, plus improved quantized NMS accuracy and full IMX500 Classification supportโexpanding fast, small-footprint deployments across mobile and edge devices. ๐๐ฑ
model.end2end=True (Enable TFLite INT8 export for end2end models โ PR #22503).yolo export model=yolov10n.pt format=tflite int8yolo val task=detect model=yolov10n_saved_model/yolov10n_int8.tflite data=coco128.yamlHappy exporting and deploying! โก
RUF and FA ruff formatting by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22480res to results by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/22501ultralytics 8.3.222 Enable TFLite INT8 export for end2end models by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22503Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.221...v8.3.222
v8.3.221 focuses on a large Ruff-driven codebase refactor that modernizes typing, cleans imports/variables, and polishes formatting/logging with minim
v8.3.221 focuses on a large Ruff-driven codebase refactor that modernizes typing, cleans imports/variables, and polishes formatting/logging with minimal behavioral change. It also tightens docs CI linting, fixes exception logging patterns, updates ExecuTorch docs links, and improves test isolation. โจ
Path | None, dict | None).# noqa, standardized imports, safer disk-usage vars.next(...) for first matches, clearer f-string formatting with !s, !r).int(round(...)) โ round(...).__all__ exports and minor logging/output polish.str(e) to f"{e}" across code and docs for cleaner messages.tmp_path for better isolation and parallel test stability, replacing ad-hoc TMP dir usage.References:
tmp_path improves CI stability and confidence in releases.Upgrade note: No action required. If contributing, ensure your PRs pass the stricter Ruff checks and follow the updated exception/logging patterns. โ
f"{e}" by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22473--extend-select F in docs.yml by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22474tmp_path for improved test isolation by @Borda in https://github.com/ultralytics/ultralytics/pull/22456ultralytics 8.3.221 Ruff RUF refactor by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22475Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.220...v8.3.221
ExecuTorch export lands! You can now export YOLO11/YOLO26 models to .pte with XNNPACK acceleration for fast, native on-device inference on mobile and
ExecuTorch export lands! You can now export YOLO11/YOLO26 models to .pte with XNNPACK acceleration for fast, native on-device inference on mobile and edge devices. Plus, a stability fix for CLIP embedding extraction in VisualAI. ๐ฑโก๐ง
format=executorch โ outputs a .pte model inside a <name>_executorch_model/ directoryexport_formats() and the exporter flowexport_executorch() method using torch.export, XnnpackPartitioner, and to_edge_transform_and_lower.pte loading and inference dispatchMinimal usage:
yolo export model=yolo11n.pt format=executorchfrom ultralytics import YOLO
YOLO("yolo11n.pt").export(format="executorch")
Helpful links:
.pte for running models on iOS, Android, and embedded Linux devices via ExecuTorchexecutorch and flatbuffers installed.pte and metadata.yaml; inference via ExecuTorch runtime (not standard Python YOLO() loading)Overall, this release expands deployment options for YOLO11/YOLO26โespecially for mobile and edge usersโwhile improving robustness in VisualAI workflows. ๐
VisualAI clip feature extraction numpy() grad error by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/22463ultralytics 8.3.220 Add ExecuTorch export (.pte) with XNNPACK by @ambitious-octopus in https://github.com/ultralytics/ultralytics/pull/22244Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.219...v8.3.220
FastSAM gets a reliable mask-resizing fix and a cleaner, built-in CLIP integration for prompt-based segmentationโimproving accuracy, stability, and ea
FastSAM gets a reliable mask-resizing fix and a cleaner, built-in CLIP integration for prompt-based segmentationโimproving accuracy, stability, and ease of use. ๐๐ผ๏ธ
ultralytics.nn.text_model.CLIP, standardizing image/text feature extraction and similarity scoring.8.3.219.Reference: See the current PR FastSAM masks .float() upsampling fix (PR #22460) by @Y-T-G.
ultralytics 8.3.219 FastSAM masks .float() upsampling fix by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22460Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.218...v8.3.219
Better, faster multi-GPU training: v8.3.218 enables true multi-GPU validation during training with correct cross-GPU metric aggregation and a new cont
Better, faster multi-GPU training: v8.3.218 enables true multi-GPU validation during training with correct cross-GPU metric aggregation and a new contiguous sampler for stable evaluation. ๐
shuffle=False (e.g., rect/size-grouped evaluation) to prevent interleaved indices.DistributedSampler when shuffle=True.ContiguousDistributedSampler.Links:
rect=True.Quick tip to run distributed training and benefit from these improvements:
yolo detect train data=coco128.yaml model=yolo11n.pt devices=0,1,2,3from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.train(data="coco128.yaml", devices=[0, 1], imgsz=640, epochs=50)
Happy training and validating across GPUs! ๐
ultralytics 8.3.218 Enable multi-GPU validation during training by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22377Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.217...v8.3.218
Segmentation gets leaner and more reliable: segment masks are now ~4ร lighter with consistent uint8 handling, plus smoother first-iteration latency th
Segmentation gets leaner and more reliable: segment masks are now ~4ร lighter with consistent uint8 handling, plus smoother first-iteration latency thanks to NMS warmup and a new dataloader pin_memory option. ๐๐ง
Segmentation masks optimized and standardized (PR: Segment masks now 4ร lighter with .byte() by @glenn-jocher)
.byte() (uint8) across processing and plotting, reducing memory and avoiding dtype mismatches.process_mask and process_mask_native return uint8 masks instead of bool.masks2segments consumes byte masks directly (no extra cast).float() before IoU to prevent edge-case errors..byte() to ensure consistent uint8 NumPy output..byte() optimization.Dataloader and backend improvements (PR: Add NMS warmup for clearer post-processing latency by @Y-T-G)
pin_memory parameter in build_dataloader(..., pin_memory: bool = True).pin_memory=self.training, reducing host memory pinning during eval by default.Version bump to 8.3.217.
Faster, lighter segmentation workflows ๐พโก
More robust and consistent results โ
Smoother first-iteration performance ๐
Better memory control for training/eval ๐งฐ
pin_memory flag allows fine-grained control to balance throughput and system memory behavior; disabled by default in validation for stability.Minimal examples:
from ultralytics.data.build import build_dataloader
# dataset = ...
dl = build_dataloader(dataset, batch=16, workers=8, pin_memory=False)
Contributors: @glenn-jocher, @Y-T-G, @Laughing-q
Links:
.byte() optimization (PR #22427)ultralytics 8.3.217 Segment masks now 4ร lighter with .byte() optimization by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22427Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.216...v8.3.217
Reduces unexpected keyword errors and deprecation warnings across environments.
Ultralytics 8.3.216 speeds up and stabilizes segmentation mask rendering, improves pose keypoint metadata handling, and enhances checkpoint loading compatibility across PyTorch versions. โก๐ผ๏ธ๐งฉ
Faster and more reliable mask plotting in the Annotator and Plotter
retina_masks=False using ops.scale_masks.ops.process_mask with broadcasted ratios and named arguments.Pose models: keypoint names metadata (kpt_names) support end-to-end
model.kpt_names; exporter saves kpt_names into model metadata.kpt_names for downstream use and exports.More compatible checkpoint loading for SAM/SAM 2
torch.load(..., weights_only=False) when supported, with safe fallback for older PyTorch.Documentation enhancement
Faster, cleaner segmentation overlays ๐จ
Better pose model usability ๐บ
from ultralytics import YOLO
model = YOLO("yolo11n-pose.pt")
print(model.kpt_names)
More robust model loading ๐ง
Improved learning experience ๐
Version bump: 8.3.215 โ 8.3.216. ๐
weights_only parameter by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22421model-yaml-config.md by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/22414ultralytics 8.3.216 Faster Annotator mask plotting by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22419Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.215...v8.3.216
Faster, more stable instance segmentation and more reliable exports. This release accelerates mask cropping by ~3x, hardens ONNX/RT-DETR exports, and
Faster, more stable instance segmentation and more reliable exports. This release accelerates mask cropping by ~3x, hardens ONNX/RT-DETR exports, and restores official Jetson JetPack 5 Docker builds โ all while refreshing docs and tutorials. โก๏ธ๐ก๏ธ๐ง
โ๏ธ Segmentation speedup (priority)
utils.ops.crop_mask for ~3x faster mask cropping on small batches (e.g., 6 masks on M4 MacBook Pro) by using efficient per-mask slicing for n<50 and vectorized logic for larger batches.amax-based check) to avoid slow indexing on common cases.๐งญ ONNX export reliability
dynamo=False by default on PyTorch 2.4 to avoid Dynamo-related instability during export; transparent to users.๐ซ RT-DETR export safeguards
RTDETRDecoder) and forces nms=False for end-to-end/RT-DETR exports.๐ฆ Export Docker stability
torch<=2.8.0 in the Python export Docker image to avoid IMX issues with 2.9.0; keeps numpy==1.26.4.๐ง Jetson support
๐ Docs and examples
dir='datasets'.Tip: Upgrade with pip install -U ultralytics and enjoy speedups automaticallyโno code changes needed for segmentation or export workflows.
dynamo=False by default for ONNX exports by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22388torch<=2.8.0 in Dockerfile-python-export by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22392nms export for RTDETR models by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22385ultralytics 8.3.215 Segmentation crop_masks speedup by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22386Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.214...v8.3.215
Cleaner experiment logs and more robust trainingโno breaking changes. ๐
Adds confidence scores to classification validation plots and strengthens NaN recovery during training, plus documentation updates highlighting SAM 3 and YOLO26. Cleaner experiment logs and more robust trainingโno breaking changes. ๐
self.loss (not self.tloss) and refine NaN/fitness collapse detection logic for more reliable recovery. See Improve NaN handler loss check (PR #22382).results.csv when not resuming so new runs donโt append to old logs with exist_ok=True. See Reset results.csv behavior (PR #22364).results.csv per run (unless resuming) keeps metrics tidy and comparable. ๐งนTip: Upgrade with pip install -U ultralytics to get these improvements. โจ
results.csv if not resuming by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22364InferenceTensor error during NaN recovery by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22372self.loss instead of self.tloss by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22382ultralytics 8.3.214 Show confidence in classification plots by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22365Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.213...v8.3.214
A stability-focused release that automatically recovers from NaN/Inf training issues and cleans up resume logic, plus faster Objects365 setup and unif
A stability-focused release that automatically recovers from NaN/Inf training issues and cleans up resume logic, plus faster Objects365 setup and unified dataset download URLs. ๐๐โก
Training robustness and resume improvements (primary change)
_load_checkpoint_state() now used by resume_training() to reduce duplication and state drift.test_nan_recovery injects a NaN to verify recovery path. โ
Dataset YAMLs: unified asset URLs
ASSETS_URL across VOC, COCO, COCO-Pose, VisDrone, and LVIS for maintainable, consistent downloads. ๐Objects365 setup speedups
ThreadPoolExecutor.CI and test updates
Version bump
ultralytics now 8.3.213.More resilient training at scale
Faster dataset preparation
More reliable downloads
Clearer platform expectations
Quick start
pip install -U ultralyticslast.pt and continue.ASSETS_URL in dataset YAMLs by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22361ultralytics 8.3.213 NaN epoch recovery by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22352Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.212...v8.3.213
Ultralytics 8.3.212 focuses on making training more robust and predictable by hardening the Trainer against edge cases (like deleted save directories
Ultralytics 8.3.212 focuses on making training more robust and predictable by hardening the Trainer against edge cases (like deleted save directories and transient non-finite losses), while simplifying the optimizer step for modern PyTorch. ๐
read_results_csv() now returns {} on read failures instead of raising. ๐โก๏ธ{}best.pt, last.pt, results.csv). ๐พ๐๏ธclip_grad_norm_ with max_norm=10.0), scaler.step(), scaler.update(), zero grads. ๐งนuv for faster, deterministic installs. โก๐ณsave_dir is deleted mid-run or on flaky filesystems.results.csv; failures return {} so training and tools can continue gracefully.uv, improving development velocity without affecting end users.Tip: If you programmatically consume training metrics, you can safely handle missing/locked CSVs:
from ultralytics.engine.trainer import BaseTrainer
trainer = BaseTrainer(args={})
metrics = trainer.read_results_csv() # returns {} on failure instead of raising
uv for docker.yml pip install tests by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22356ultralytics 8.3.212 Improve Trainer robustness to save_dir deletion by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22358Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.211...v8.3.212
More robust training and downloads. This release skips optimizer updates on nonโfinite gradients (NaN/Inf) to prevent crashes and centralizes asset UR
More robust training and downloads. This release skips optimizer updates on nonโfinite gradients (NaN/Inf) to prevent crashes and centralizes asset URLs for more reliable tests and dataset downloads. ๐ก๏ธ๐
optimizer_step(): gradient clipping with nonโfinite detection and safe skip of the optimizer update instead of crashing.ASSETS_URL constant and replaced hardcoded asset links across tests, data utils, benchmarks, and converters.downloads.is_url() is now safer and faster:
safe_download() now aliases ASSETS_URL to the public assets host automatically, simplifying host switching.8.3.211.Key PRs:
ASSETS_URL and improve download robustness โ see PR Use ASSETS_URL in testsASSETS_URL reduces flaky tests and download issues across environments.Quick start or upgrade:
pip install -U ultralyticsTip: If you see warnings about nonโfinite loss or gradients, try:
amp=False).ASSETS_URL in tests by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22355ultralytics 8.3.211 Skip non-finite gradients in optimizer_step() by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22350Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.210...v8.3.211
More stable training by skipping non-finite loss batches, smoother RT-DETR device/precision moves, and better ONNX profiling for multi-input/dynamic-s
More stable training by skipping non-finite loss batches, smoother RT-DETR device/precision moves, and better ONNX profiling for multi-input/dynamic-shape models. ๐
Training stability
RT-DETR device/precision consistency
_apply to RTDETRDetectionModel so anchors and masks follow .to(), .cuda(), .cpu(), .half(), etc. ๐ (See PR: Add _apply to RTDETR)ONNX benchmarking improvements
More reliable training out of the box
Fewer device/dtype gotchas for RT-DETR
Robust and accurate ONNX profiling
Quick update tip:
pip install -U ultralytics โ
_apply method to RTDETR for better device consistency by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22341ultralytics 8.3.210 Skip non-finite training forward passes by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22353Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.209...v8.3.210
RT-DETR exports to TensorFlow/TFLite are now reliable by automatically using ONNX opset 19, plus a small tuner bug fix and documentation/CI updates. โ
RT-DETR exports to TensorFlow/TFLite are now reliable by automatically using ONNX opset 19, plus a small tuner bug fix and documentation/CI updates. โ ๐
RT-DETR TensorFlow/TFLite export made robust
opset=19 during the ONNX step when exporting RT-DETR to TensorFlow SavedModel (and downstream TFLite). See the PR by @Y-T-G: RTDETR TFLite export fix with ONNX opset constraints fixing issue #18055. ๐งsimplify=True), improving export stability.Dependency updates for export
onnxslim to >=0.1.71 for both ONNX and TensorFlow SavedModel export paths for better model graph simplification. ๐ฆTuner reliability fix
CI and Docs improvements
More reliable RT-DETR โ TensorFlow/TFLite exports
Smoother export experience
onnxslim enhances ONNX graph simplification, reducing export friction. โฉMore accurate tuning results
Clearer docs and steadier CI
Quick examples:
yolo export model=rtdetr.pt format=tf or yolo export model=rtdetr.pt format=tflitefrom ultralytics import YOLO
model = YOLO("rtdetr.pt")
model.export(format="tf") # TensorFlow SavedModel
model.export(format="tflite") # TFLite
ultralytics/stars to Docs CI page by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22331ultralytics 8.3.209 RTDETR TFLite export fix with ONNX opset constraints by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22314Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.208...v8.3.209
Tidy Dependabot config and labels; remove deprecated reviewer field (PR #22322). ๐งน
Expands safe FP16 (half-precision) export support across ONNX and TorchScript, improves NCNN export reliability by switching to the ONNX pipeline, and delivers faster RT-DETR inference via anchor caching โ plus clearer docs and smoother dependency handling. ๐
FP16 export behavior (PR #22316)
half=True on CPU, it now warns and automatically uses half=False.NCNN export pipeline update (PR #22315)
format='ncnn'. TorchScript is only produced if explicitly requested. ๐RT-DETR performance optimization (PR #22318)
dynamic=True.Smarter dependency checks with interchangeable packages (PR #22321)
check_requirements() supports alternatives like ("onnxruntime", "onnxruntime-gpu"), making installs more flexible. โ
Validation docs clarity (PR #22319)
model.names (the modelโs class set), not the dataset YAML classes. ๐Better examples for check_requirements usage (PR #22317)
CI and maintenance improvements
Safer, clearer FP16 exports on GPU only
More reliable NCNN exports
Faster RT-DETR workflows
Smoother installs and environment setup
onnxruntime vs onnxruntime-gpu) reduces friction across CPU/GPU setups.Reduced test flakes and cleaner maintenance
Quick examples:
from ultralytics import YOLO
YOLO("yolo11n.pt").export(format="onnx", half=True, device=0) # โ
GPU FP16
YOLO("yolo11n.pt").export(format="onnx", half=True, device="cpu") # โน๏ธ Will warn and use half=False
from ultralytics.utils.checks import check_requirements
check_requirements([("onnxruntime", "onnxruntime-gpu"), "numpy"])
check_requirements pip install extras example by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22317missing_ok=True to TensorRT INT8 cache cleanup test by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22320check_requirements() by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22321ultralytics 8.3.208 Expand FP16 export support by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22316Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.207...v8.3.208
CoreML export on iOS gets more reliable for detection models, fixing NMS issues with non-80-class datasets and simplifying model export handling. Plus
CoreML export on iOS gets more reliable for detection models, fixing NMS issues with non-80-class datasets and simplifying model export handling. Plus, clearer download error messages for easier troubleshooting. ๐
mlprogram path for iOS detection exports to handle MLProgram-specific behavior.ct_model.weights_dir directlyโno manual save-path juggling.safe_download, including underlying exception details for faster debugging.Minimal example (CoreML export with NMS):
yolo export model=yolo11n.pt format=coreml nms=True
# Now more reliable on iOS (MLProgram), even for non-80-class datasets ๐ฏ
ultralytics 8.3.207 Apple MLProgram NMS models 80-class pad workaround by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22310Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.206...v8.3.207
CoreML export gets a big upgrade: dynamic image shapes and multi-image batching now work end-to-end, making Apple deployments more flexible and produc
CoreML export gets a big upgrade: dynamic image shapes and multi-image batching now work end-to-end, making Apple deployments more flexible and production-friendly. ๐
dynamic=True for variable image sizes and batch sizes. ๐งฉdynamic with nms, and classification models canโt use dynamic.dynamic for CoreML.YOLO, YOLOWorld, YOLOE, SAM, etc.) via TYPE_CHECKING for better IDE autocomplete and static analysis. โจ (@Y-T-G)plot_images now gracefully handles 1-, 2-, 3-, and multi-channel inputs (auto-pads or crops to 3 channels), improving reliability for multispectral and non-RGB data. ๐ผ๏ธ (@ambitious-octopus)dynamic + nms) and save debugging time.Quick start examples:
# Export CoreML with dynamic shapes and set a max batch
yolo export format=coreml dynamic batch=16
# Batch inference with a CoreML package
yolo predict model=yolo11n.mlpackage batch=2
# Change image size on the fly (still batched)
yolo predict model=yolo11n.mlpackage imgsz=256 batch=2
Notes:
dynamic=True for batch > 1.dynamic=True with nms=True.dynamic=True on CoreML.python.md Docs by @cdeil in https://github.com/ultralytics/ultralytics/pull/22285GIF to AVIF conversion, smaller files size and same animation by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/22293plot_images by @ambitious-octopus in https://github.com/ultralytics/ultralytics/pull/22282ignore_init_summary in mkdocs.yml by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22305ultralytics 8.3.206 Support dynamic batch and image size with CoreML export by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22300Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.205...v8.3.206
Cleaner post-training behavior and clearer visuals: v8.3.205 refines how training configs are restored from checkpoints, improves fitness plots with s
Cleaner post-training behavior and clearer visuals: v8.3.205 refines how training configs are restored from checkpoints, improves fitness plots with smarter outlier filtering, and updates docs for more predictable inference and easy-start notebooks. โ
_reset_ckpt_args) instead of using raw model.args.Useful links:
predict.rect behavior note to predict.md by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22266Construction-PPE notebook in docs by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/22269ultralytics 8.3.205 Reset checkpoint arguments after training by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22286Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.204...v8.3.205
YOLO 8.3.204 sharpens training ergonomics, stabilizes exports, broadens device support, and refreshes docsโmaking multi-GPU projects, ONNX workflows,
YOLO 8.3.204 sharpens training ergonomics, stabilizes exports, broadens device support, and refreshes docsโmaking multi-GPU projects, ONNX workflows, and edge deployments smoother than ever. ๐
select_device() and into the Trainer, requiring explicit batch sizes when using more than one GPU and delivering clearer error guidance.YOLOESegTrainerFromScratch, cleaner loss initialization, and shared preprocessing streamline from-scratch and fine-tune training paths.non_blocking transfers on MPS.strip_optimizer() now removes AMP scaler state, trimming checkpoint clutter.imgsz, reducing mismatches in production.AttributeError error for validation with visualize by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22194--slow flag in ci.yml pip install command by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22196uv version 0.8.19 restraint by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22197non_blocking device transfers for MPS to prevent output corruption by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22181torch.compile by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22205preprocess_batch by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22206RKNN model support in streamlit live-inference solution by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/22212imgsz for visual prompt extraction by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22238RKNN model support in streamlit live-inference solution by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/22230ultralytics 8.3.204 Scope batch_size check from select_device() to Trainer by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22254Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.203...v8.3.204
Safer, smoother training resumes with AMP plus sturdier exports and better version checks. This release improves mixedโprecision resume stability, fut
Safer, smoother training resumes with AMP plus sturdier exports and better version checks. This release improves mixedโprecision resume stability, futureโproofs ONNX opset selection, tightens export requirements (OpenVINO/CoreML), and polishes compatibility across models and PyTorch versions. ๐๐ก๏ธ
best_onnx_opset and multiple-install checks; improved slug generation for content tabs; corrected CI badge; enhanced Model YAML Guide and nav PRs #22142, #22157, #22184, #22154 ๐Tip: If you export to OpenVINO or CoreML, verify your PyTorch version first:
import torch
print(torch.__version__)
Upgrade instructions: see the official PyTorch install guide on the PyTorch website.
best_save_dir by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22137compile for WorldModel and YOLOEModel by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22148ultralytics 8.3.203 Future-proof ONNX opset selection by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22142torch<1.13 by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22155torch>=2.1 for OpenVINO exports by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22156torch==1.10 by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22158torch>=1.13 for YOLOE models by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22160torch>=1.11 for RTDETR models by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22161torch<1.11 by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22163torch>=1.11 for CoreML exports by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22162sum(0).sum() predictor fix by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22169uv required-version = "==0.8.19" by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22186ultralytics 8.3.203 Restore GradScaler on resuming training by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22189Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.202...v8.3.203
TFLite export gets a targeted INT8 upgrade: per-channel quantization is fixed and INT8 exports are slimmer and more reliable in ultralytics 8.3.202. ๐
TFLite export gets a targeted INT8 upgrade: per-channel quantization is fixed and INT8 exports are slimmer and more reliable in ultralytics 8.3.202. ๐
Quick tip to export INT8 TFLite with the new behavior:
from ultralytics import YOLO
model = YOLO("yolo11n.pt") # or your trained YOLO11 model
model.export(format="tflite", int8=True) # per-channel INT8 fix applied; leaner artifacts
Enjoy improved TFLite quantization and leaner edge-ready models! โจ
ultralytics 8.3.202 TFLite per-channel INT8 quantization fix by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22133Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.201...v8.3.202
Ultralytics 8.3.201 focuses on smoother TensorFlow exports, more reliable Docker-based exports, improved CLI help for Ultralytics HUB, and helpful doc
Ultralytics 8.3.201 focuses on smoother TensorFlow exports, more reliable Docker-based exports, improved CLI help for Ultralytics HUB, and helpful docs refinements โ all aimed at making training and deployment more stable and user-friendly. ๐
TensorFlow export compatibility expanded (primary change) ๐ง
ai-edge-litert requirement to >=1.2.0 for non-macOS platforms; macOS remains pinned to <1.4.0 to avoid known issues.check_requirements() now accepts tuple[str] as well as Path | str | list[str].Export robustness and Docker reliability ๐ณ
tmp/yolo11n.pt) for EdgeTPU/NCNN/IMX steps, improving stability and reproducibility: Export in Dockerfile /tmp dir by @glenn-jocher.Better CLI help for Ultralytics HUB ๐งญ
yolo -h now shows the correct context-aware help for HUB subcommands by adjusting help precedence: Display help message with yolo -h by @Y-T-G.Training flexibility for multimodal (YOLOE) workflows ๐ง
get_text_pe() during training: Remove training mode assertion in get_text_pe() by @Y-T-G.Dataset reliability fix ๐ฆ
Documentation improvements ๐
Smoother TensorFlow export workflows โ
ai-edge-litert. ๐ก๏ธMore reliable and portable Docker builds ๐
Clearer, more helpful CLI and logs ๐บ๏ธ
yolo -h behaves as users expect, especially for Ultralytics HUB commands.Enhanced training flexibility and dataset setup ๐งช
Easier customization and configuration ๐
Tip: To try TensorFlow SavedModel export with the updated dependency handling:
pip install ultralytics
yolo export model=yolo11n.pt format=saved_model
get_text_pe() by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22076/tmp dir by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22107yolo -h by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22102ultralytics 8.3.201 Expand TensorFlow ai-edge-litertโฅ1.2 support (non-macOS) by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22110Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.200...v8.3.201
A focused export refactor that adds a complete Sony IMX500 pipeline, cleans up IMX-specific logic in model heads, and introduces clearer export APIsโp
A focused export refactor that adds a complete Sony IMX500 pipeline, cleans up IMX-specific logic in model heads, and introduces clearer export APIsโplus stability fixes for ONNX (OBB), TensorRT exports, and smoother multi-GPU training. ๐
Export refactor and new IMX pipeline (PR #22005) โจ
export_onnx โ torch2onnxexport_engine โ onnx2enginetorch2imx utility with quantization and IMX-friendly NMS wrappingFXModel, Detect/Pose overrides, NMSWrapper)ultralytics/utils/export/ with imx.pyFXModel from torch_utilsIMX support clarity (PR #22082) ๐งญ
ONNX + OBB reliability (PR #22079) ๐งฉ
TensorRT export stability (PR #22080) โ๏ธ
DDP training improvements (PR #22073) ๐ผ
world_size/ddp earlier, simplifies DDP APIs, and prevents duplicate wandb logsTuner robustness (PR #22066) ๐ก๏ธ
KeyError when close_mosaic isnโt in the hyperparameter search spaceUX polish (PRs #22071, #22083, #22046, #22063, #22085) โ๏ธ
pttorch2onnx and onnx2engine names make conversion stages explicit and reduce confusion.torch2imx enables end-to-end IMX500 deployment with built-in quantization and NMS wrapping.Quick tips:
yolo export model=yolo11n.pt format=onnxyolo export model=yolo11n.pt format=engine dynamicyolo export model=yolo11n.pt format=imxKeyError when close_mosaic not part of search space by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22066pt format by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/22083IMX export assert message to include YOLO11n by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/22082RuntimeError for OBB models exported with NMS by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22079wandb logging twice when running DDP training by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22073ultralytics 8.3.200 Refactor Sony IMX exports to imx.py by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22005Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.199...v8.3.200
Replaces deprecated NVIDIA Docker approach with NVIDIA Container Toolkit; adds distro-specific install steps and standardizes --runtime=nvidia. See PRโฆ
ultralytics 8.3.199 boosts startup speed with lazy model loading, refines export/runtime stability, and modernizes GPU Docker docsโdelivering faster imports, smoother deployments, and clearer tooling. โก๐ณ
__getattr__, preserving the public API. About ~3% faster import ultralytics.(boxes, scores, labels, n_valid) for non-keypoint tasks; keypoint outputs unchanged.tensorrt-cu12) and blocks known-bad versions for more reliable exports.attempt_compile() now warns on mode="max-autotune" and uses max-autotune-no-cudagraphs instead; docs updated accordingly.plot_tune_results(..., exclude_zero_fitness_points=True) for cleaner visuals.scale errors in parse_model() when scales isnโt provided.--runtime=nvidia.gpu-latest; Slack alerts now target specific failed jobs; runner image version parameterized.ultralytics/__init__.py.from ultralytics import YOLOultralytics.YOLO("yolo11n.pt")torch.compile now prefers max-autotune-no-cudagraphs, avoiding CUDA Graphs issues while keeping performance benefits.--runtime=nvidia examples make GPU containers more predictable across distros.Helpful snippets:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
from ultralytics.utils.plotting import plot_tune_results
plot_tune_results("tune_results.csv", exclude_zero_fitness_points=False)
sudo docker run -it --ipc=host --runtime=nvidia --gpus all ultralytics/ultralytics:latest
imx object detection export outputs by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22045mode="max-autotune" with compile by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22040parse_model() by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22054ultralytics 8.3.199 3% Faster Ultralytics Imports with Lazy Model Loading by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/21985Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.198...v8.3.199
Smarter hyperparameter tuning and sturdier training/inference across the board. v8.3.198 introduces a much stronger Tuner with BLX-ฮฑ crossover, unifie
Smarter hyperparameter tuning and sturdier training/inference across the board. v8.3.198 introduces a much stronger Tuner with BLX-ฮฑ crossover, unified metric plotting, safer defaults, and multiple robustness fixes (NMS, DDP loss, Intel GPU checks), plus simpler export APIs and flexible torch.compile modes. ๐
Quick examples
from ultralytics import YOLO
model = YOLO("yolo11s.yaml")
model.tune(
device=0,
data="coco128.yaml",
optimizer="AdamW",
epochs=100,
batch=8,
compile=False,
plots=False,
val=False,
save=False,
workers=16,
project="tune-yolo11s-scratch-coco128-100e",
iterations=1000,
)
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.train(data="coco8.yaml", epochs=3, compile="reduce-overhead") # or "default", "max-autotune", True/False
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
onnx_path = model.export(format="onnx") # 'onnx_path' is a string
Exporter and remove unnecessary None placeholder by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22009torch.compile by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/21999TorchNMS.nms() early exit logic by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22014numpy version by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/22025torch.Tensor.shape[0] to get length for torch.Tensor by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22021plot_results for detect/segment/pose/obb/classify tasks by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22026mask_ratio=1 by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/22037ultralytics 8.3.198 Improve Tuner with BLX-ฮฑ gene crossover by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/22038Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.3.197...v8.3.198
Your coding agent can read these notes before it upgrades. Set up the MCP server โ