Command Line Interface Usage
The YOLO command line interface (CLI) allows for simple single-line commands without the need for a Python environment. CLI requires no customization or Python code. You can simply run all tasks from the terminal with the yolo
command.
Watch: Mastering Ultralytics YOLOv8: CLI
Example
Ultralytics yolo
commands use the following syntax:
yolo TASK MODE ARGS
Where TASK (optional) is one of [detect, segment, classify]
MODE (required) is one of [train, val, predict, export, track]
ARGS (optional) are any number of custom 'arg=value' pairs like 'imgsz=320' that override defaults.
yolo cfg
Train a detection model for 10 epochs with an initial learning_rate of 0.01
Predict a YouTube video using a pretrained segmentation model at image size 320:
Val a pretrained detection model at batch-size 1 and image size 640:
Export a YOLOv8n classification model to ONNX format at image size 224 by 128 (no TASK required)
Where:
TASK
(optional) is one of[detect, segment, classify]
. If it is not passed explicitly YOLOv8 will try to guess theTASK
from the model type.MODE
(required) is one of[train, val, predict, export, track]
ARGS
(optional) are any number of customarg=value
pairs likeimgsz=320
that override defaults. For a full list of availableARGS
see the Configuration page anddefaults.yaml
Warning
Arguments must be passed as arg=val
pairs, split by an equals =
sign and delimited by spaces between pairs. Do not use
--
argument prefixes or commas ,
between arguments.
yolo predict model=yolov8n.pt imgsz=640 conf=0.25
✅yolo predict model yolov8n.pt imgsz 640 conf 0.25
❌yolo predict --model yolov8n.pt --imgsz 640 --conf 0.25
❌
Train
Train YOLOv8n on the COCO8 dataset for 100 epochs at image size 640. For a full list of available arguments see the Configuration page.
Example
Val
Validate trained YOLOv8n model accuracy on the COCO8 dataset. No argument need to passed as the model
retains its training data
and arguments as model attributes.
Example
Predict
Use a trained YOLOv8n model to run predictions on images.
Example
Export
Export a YOLOv8n model to a different format like ONNX, CoreML, etc.
Example
Available YOLOv8 export formats are in the table below. You can export to any format using the format
argument, i.e. format='onnx'
or format='engine'
.
Format | format Argument |
Model | Metadata | Arguments |
---|---|---|---|---|
PyTorch | - | yolov8n.pt |
✅ | - |
TorchScript | torchscript |
yolov8n.torchscript |
✅ | imgsz , optimize , batch |
ONNX | onnx |
yolov8n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino |
yolov8n_openvino_model/ |
✅ | imgsz , half , int8 , batch |
TensorRT | engine |
yolov8n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , batch |
CoreML | coreml |
yolov8n.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolov8n_saved_model/ |
✅ | imgsz , keras , int8 , batch |
TF GraphDef | pb |
yolov8n.pb |
❌ | imgsz , batch |
TF Lite | tflite |
yolov8n.tflite |
✅ | imgsz , half , int8 , batch |
TF Edge TPU | edgetpu |
yolov8n_edgetpu.tflite |
✅ | imgsz |
TF.js | tfjs |
yolov8n_web_model/ |
✅ | imgsz , half , int8 , batch |
PaddlePaddle | paddle |
yolov8n_paddle_model/ |
✅ | imgsz , batch |
NCNN | ncnn |
yolov8n_ncnn_model/ |
✅ | imgsz , half , batch |
See full export
details in the Export page.
Overriding default arguments
Default arguments can be overridden by simply passing them as arguments in the CLI in arg=value
pairs.
Train a detection model for 10 epochs
with learning_rate
of 0.01
Predict a YouTube video using a pretrained segmentation model at image size 320:
Overriding default config file
You can override the default.yaml
config file entirely by passing a new file with the cfg
arguments, i.e. cfg=custom.yaml
.
To do this first create a copy of default.yaml
in your current working dir with the yolo copy-cfg
command.
This will create default_copy.yaml
, which you can then pass as cfg=default_copy.yaml
along with any additional args, like imgsz=320
in this example:
FAQ
How do I use the Ultralytics YOLOv8 command line interface (CLI) for model training?
To train a YOLOv8 model using the CLI, you can execute a simple one-line command in the terminal. For example, to train a detection model for 10 epochs with a learning rate of 0.01, you would run:
This command uses the train
mode with specific arguments. Refer to the full list of available arguments in the Configuration Guide.
What tasks can I perform with the Ultralytics YOLOv8 CLI?
The Ultralytics YOLOv8 CLI supports a variety of tasks including detection, segmentation, classification, validation, prediction, export, and tracking. For instance:
- Train a Model: Run
yolo train data=<data.yaml> model=<model.pt> epochs=<num>
. - Run Predictions: Use
yolo predict model=<model.pt> source=<data_source> imgsz=<image_size>
. - Export a Model: Execute
yolo export model=<model.pt> format=<export_format>
.
Each task can be customized with various arguments. For detailed syntax and examples, see the respective sections like Train, Predict, and Export.
How can I validate the accuracy of a trained YOLOv8 model using the CLI?
To validate a YOLOv8 model's accuracy, use the val
mode. For example, to validate a pretrained detection model with a batch size of 1 and image size of 640, run:
This command evaluates the model on the specified dataset and provides performance metrics. For more details, refer to the Val section.
What formats can I export my YOLOv8 models to using the CLI?
YOLOv8 models can be exported to various formats such as ONNX, CoreML, TensorRT, and more. For instance, to export a model to ONNX format, run:
For complete details, visit the Export page.
How do I customize YOLOv8 CLI commands to override default arguments?
To override default arguments in YOLOv8 CLI commands, pass them as arg=value
pairs. For example, to train a model with custom arguments, use:
For a full list of available arguments and their descriptions, refer to the Configuration Guide. Ensure arguments are formatted correctly, as shown in the Overriding default arguments section.
Created 2023-11-12, Updated 2024-07-04
Authors: glenn-jocher (19), ambitious-octopus (1), Burhan-Q (3), RizwanMunawar (1), AyushExel (1), Laughing-q (1), shuizhuyuanluo@126.com (1)