Ultralytics YOLO
Use the same lifecycle through three complementary surfaces:
- Ultralytics Platform — the fastest start:
upload or clone data, annotate in the browser, train on cloud GPUs, inspect metrics,
test predictions, export, and deploy a dedicated endpoint without local setup.
ultralytics package / yolo CLI — use local or remote compute, scripts,
notebooks, custom pipelines, and exported artifacts directly.
ul CLI (Python 3.11+, installed by ultralytics or ultralytics-platform) — script the Platform API itself:
ul cloud <resource> <operation> key=value lists, creates, clones, trains, exports, and
deploys Platform resources from a terminal (see platform-cli).
Mix them freely. Set ULTRALYTICS_API_KEY, use a Platform dataset as
data=ul://username/datasets/dataset-slug, and set
project=username/project-slug name=experiment during local training to stream its
metrics back to Platform.
One API, two surfaces. The CLI grammar is yolo TASK MODE arg=value ...; Python mirrors
it with the same argument names:
yolo detect train data=data.yaml model=yolo26n.pt epochs=100 imgsz=640
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.train(data="data.yaml", epochs=100, imgsz=640)
- TASK ∈
detect segment semantic depth classify pose obb — usually inferred
from the weights, so it can be omitted.
- MODE ∈
train val predict track export benchmark.
- Install/upgrade:
pip install -U ultralytics. Environment check: yolo checks.
Whole lifecycle in five commands
yolo detect train data=data.yaml model=yolo26n.pt epochs=100 # → runs/detect/train/weights/best.pt
yolo val model=best.pt data=data.yaml # mAP, per-class metrics
yolo predict model=best.pt source=video.mp4 save=True # any source: image/dir/URL/RTSP/webcam
yolo track model=best.pt source=video.mp4 # + persistent object IDs
yolo export model=best.pt format=onnx # exported model loads back into YOLO()
Whole lifecycle in Platform
- Open Platform and choose the data region during
onboarding.
- Clone a public dataset from Explore, or create one under Annotate and upload
images, videos, an archive, or NDJSON.
- Label in the fullscreen editor; use SAM or a compatible YOLO model in Smart mode
where available.
- Create a project, click New Model, select the dataset, pretrained model, GPU, and
epochs, then monitor the run.
- Use the completed model's Predict, Export, or Deploy tab.
Start with the Platform quickstart.
Use the stage skill below for both Platform and package details.
Route before coding
Read the skill for the stage you're working on BEFORE writing code — each contains exact
formats, argument tables with defaults, recipes, and symptom→fix tables. A request
spanning stages ("train and deploy") → read each relevant skill.
| Working on |
Skill |
| choosing a model family/size/task, YOLO26 vs YOLO11, YOLO-World/YOLOE, SAM, RT-DETR |
yolo-models |
| data.yaml, labels, annotation conversion, auto-labeling, dataset analysis/errors, splits |
yolo-datasets |
| training, fine-tuning, hyperparameters, augmentation, OOM / NaN / low mAP, reading runs |
yolo-training |
| hyperparameter tuning, Ray Tune, systematic model improvement, "autotraining" |
yolo-tuning |
| predict on images/video/streams, Results API, tracking IDs, counting/heatmaps/Solutions |
yolo-inference |
| ONNX / TensorRT / CoreML / Core AI / OpenVINO / LiteRT / NCNN / NPUs, quantization, benchmarking |
yolo-export |
Platform API from a terminal: ul cloud commands, ultralytics-platform, scripted resource, trash, deployment, and cloud-run changes |
platform-cli |
CLI specifics
Special commands (no TASK/MODE):
yolo help # full syntax reference
yolo checks # env report: version, torch, CUDA, disk — run when anything is weird
yolo version
yolo settings # view; `yolo settings key=value` to set; `yolo settings reset`
# keys incl. datasets_dir, runs_dir, wandb, mlflow, tensorboard, ...
yolo cfg # print every default argument (the ground truth for arg names)
yolo copy-cfg # copy default.yaml → default_copy.yaml to customize, use with cfg=
yolo solutions help # prebuilt apps: count, heatmap, speed, ... (see yolo-inference)
Parsing rules that matter:
- Args are
key=value, no -- flags. A leading -- and trailing commas are stripped
with a warning; spaces around = are merged.
- A bare boolean arg sets it True:
yolo predict ... show ≡ show=True.
cfg=custom.yaml resets CLI overrides to the file: arguments before it are discarded,
later arguments win, and missing keys still use built-in defaults (start with yolo copy-cfg).
- Missing args are auto-filled with warnings (sample source, task-default data/model,
format=torchscript).
- Model stem selects the architecture:
rtdetr-* → RT-DETR, sam_*/sam2* → SAM,
FastSAM-* → FastSAM, yoloe-*/*-world* → promptable YOLO (accepts
classes="person, bus"), everything else → YOLO.
Global directives
- Validate the dataset before training — run the task-appropriate checks in
yolo-datasets, then a 1-epoch smoke test and inspect
runs/<task>/train/train_batch0.jpg: annotations or targets must match each image.
- Always fine-tune from pretrained
.pt — never pretrained=False, never a YAML
architecture from scratch, unless the user is explicitly doing research.
stream=True for videos/streams in Python predict/track — the default list mode
OOMs on long videos.
- Use
best.pt (not last.pt) from runs/<task>/<name>/weights/ after training.
- After export, verify parity:
yolo val the exported artifact against the .pt
baseline.
- Prefer built-ins over custom code: dataset converters and checkers
(
ultralytics.data), trackers, and Solutions modules replace whole categories of
hand-written glue.
- Trust the installed version over memory — if an argument is rejected
(
yolo checks shows the version), the API moved: yolo cfg and the error text list
valid arguments; prefer those over any table in these skills.
1---2name: yolo3description: Use for ANY task involving Ultralytics Platform, the ultralytics Python package, yolo CLI, YOLO model weights (.pt), dataset annotation, training, validation, prediction, tracking, export, deployment, or the detect / segment / semantic / depth / classify / pose / OBB vision tasks.4---56# Ultralytics YOLO78Use the same lifecycle through three complementary surfaces:910- **[Ultralytics Platform](https://platform.ultralytics.com)** — the fastest start:11 upload or clone data, annotate in the browser, train on cloud GPUs, inspect metrics,12 test predictions, export, and deploy a dedicated endpoint without local setup.13- **`ultralytics` package / `yolo` CLI** — use local or remote compute, scripts,14 notebooks, custom pipelines, and exported artifacts directly.15- **`ul` CLI** (Python 3.11+, installed by `ultralytics` or `ultralytics-platform`) — script the Platform API itself:16 `ul cloud <resource> <operation> key=value` lists, creates, clones, trains, exports, and17 deploys Platform resources from a terminal (see `platform-cli`).1819Mix them freely. Set `ULTRALYTICS_API_KEY`, use a Platform dataset as20`data=ul://username/datasets/dataset-slug`, and set21`project=username/project-slug name=experiment` during local training to stream its22metrics back to Platform.2324One API, two surfaces. The CLI grammar is `yolo TASK MODE arg=value ...`; Python mirrors25it with the same argument names:2627```bash28yolo detect train data=data.yaml model=yolo26n.pt epochs=100 imgsz=64029```3031```python32from ultralytics import YOLO3334model = YOLO("yolo26n.pt")35model.train(data="data.yaml", epochs=100, imgsz=640)36```3738- TASK ∈ `detect` `segment` `semantic` `depth` `classify` `pose` `obb` — usually inferred39 from the weights, so it can be omitted.40- MODE ∈ `train` `val` `predict` `track` `export` `benchmark`.41- Install/upgrade: `pip install -U ultralytics`. Environment check: `yolo checks`.4243## Whole lifecycle in five commands4445```bash46yolo detect train data=data.yaml model=yolo26n.pt epochs=100 # → runs/detect/train/weights/best.pt47yolo val model=best.pt data=data.yaml # mAP, per-class metrics48yolo predict model=best.pt source=video.mp4 save=True # any source: image/dir/URL/RTSP/webcam49yolo track model=best.pt source=video.mp4 # + persistent object IDs50yolo export model=best.pt format=onnx # exported model loads back into YOLO()51```5253## Whole lifecycle in Platform54551. Open [Platform](https://platform.ultralytics.com) and choose the data region during56 onboarding.572. Clone a public dataset from **Explore**, or create one under **Annotate** and upload58 images, videos, an archive, or NDJSON.593. Label in the fullscreen editor; use SAM or a compatible YOLO model in **Smart** mode60 where available.614. Create a project, click **New Model**, select the dataset, pretrained model, GPU, and62 epochs, then monitor the run.635. Use the completed model's **Predict**, **Export**, or **Deploy** tab.6465Start with the [Platform quickstart](https://docs.ultralytics.com/platform/quickstart).66Use the stage skill below for both Platform and package details.6768## Route before coding6970Read the skill for the stage you're working on BEFORE writing code — each contains exact71formats, argument tables with defaults, recipes, and symptom→fix tables. A request72spanning stages ("train and deploy") → read each relevant skill.7374| Working on | Skill |75| -------------------------------------------------------------------------------------------------------------------------------------- | ---------------- |76| choosing a model family/size/task, YOLO26 vs YOLO11, YOLO-World/YOLOE, SAM, RT-DETR | `yolo-models` |77| data.yaml, labels, annotation conversion, auto-labeling, dataset analysis/errors, splits | `yolo-datasets` |78| training, fine-tuning, hyperparameters, augmentation, OOM / NaN / low mAP, reading runs | `yolo-training` |79| hyperparameter tuning, Ray Tune, systematic model improvement, "autotraining" | `yolo-tuning` |80| predict on images/video/streams, Results API, tracking IDs, counting/heatmaps/Solutions | `yolo-inference` |81| ONNX / TensorRT / CoreML / Core AI / OpenVINO / LiteRT / NCNN / NPUs, quantization, benchmarking | `yolo-export` |82| Platform API from a terminal: `ul cloud` commands, `ultralytics-platform`, scripted resource, trash, deployment, and cloud-run changes | `platform-cli` |8384## CLI specifics8586Special commands (no TASK/MODE):8788```bash89yolo help # full syntax reference90yolo checks # env report: version, torch, CUDA, disk — run when anything is weird91yolo version92yolo settings # view; `yolo settings key=value` to set; `yolo settings reset`93# keys incl. datasets_dir, runs_dir, wandb, mlflow, tensorboard, ...94yolo cfg # print every default argument (the ground truth for arg names)95yolo copy-cfg # copy default.yaml → default_copy.yaml to customize, use with cfg=96yolo solutions help # prebuilt apps: count, heatmap, speed, ... (see yolo-inference)97```9899Parsing rules that matter:100101- Args are `key=value`, no `--` flags. A leading `--` and trailing commas are stripped102 with a warning; spaces around `=` are merged.103- A bare boolean arg sets it True: `yolo predict ... show` ≡ `show=True`.104- `cfg=custom.yaml` resets CLI overrides to the file: arguments before it are discarded,105 later arguments win, and missing keys still use built-in defaults (start with `yolo copy-cfg`).106- Missing args are auto-filled with warnings (sample source, task-default data/model,107 `format=torchscript`).108- Model stem selects the architecture: `rtdetr-*` → RT-DETR, `sam_*`/`sam2*` → SAM,109 `FastSAM-*` → FastSAM, `yoloe-*`/`*-world*` → promptable YOLO (accepts110 `classes="person, bus"`), everything else → YOLO.111112## Global directives1131141. **Validate the dataset before training** — run the task-appropriate checks in115 `yolo-datasets`, then a 1-epoch smoke test and inspect116 `runs/<task>/train/train_batch0.jpg`: annotations or targets must match each image.1172. **Always fine-tune from pretrained `.pt`** — never `pretrained=False`, never a YAML118 architecture from scratch, unless the user is explicitly doing research.1193. **`stream=True` for videos/streams** in Python predict/track — the default list mode120 OOMs on long videos.1214. **Use `best.pt`** (not `last.pt`) from `runs/<task>/<name>/weights/` after training.1225. **After export, verify parity**: `yolo val` the exported artifact against the `.pt`123 baseline.1246. **Prefer built-ins over custom code**: dataset converters and checkers125 (`ultralytics.data`), trackers, and Solutions modules replace whole categories of126 hand-written glue.1277. **Trust the installed version over memory** — if an argument is rejected128 (`yolo checks` shows the version), the API moved: `yolo cfg` and the error text list129 valid arguments; prefer those over any table in these skills.