CLI Simplification (#449)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
50
docs/cli.md
50
docs/cli.md
@ -4,37 +4,37 @@ YOLO command line interface is the easiest way to get started.
|
||||
!!! tip "Syntax"
|
||||
|
||||
```bash
|
||||
yolo task=detect mode=train model=yolov8n.yaml epochs=1 ...
|
||||
... ... ...
|
||||
segment predict yolov8n-seg.pt
|
||||
classify val yolov8n-cls.pt
|
||||
yolo task=detect mode=train model=yolov8n.yaml args...
|
||||
classify predict yolov8n-cls.yaml args...
|
||||
segment val yolov8n-seg.yaml args...
|
||||
export yolov8n.pt format=onnx args...
|
||||
```
|
||||
|
||||
The experiment arguments can be overridden directly by pass `arg=val` covered in the next section. You can run any
|
||||
supported task by setting `task` and `mode` in cli.
|
||||
The default arguments can be overridden directly by passing custom `arg=val` covered in the next section. You can run
|
||||
any supported task by setting `task` and `mode` in CLI.
|
||||
=== "Training"
|
||||
|
||||
| | `task` | snippet |
|
||||
|------------------|------------|------------------------------------------------------------|
|
||||
| Detection | `detect` | <pre><code>yolo task=detect mode=train </code></pre> |
|
||||
| Instance Segment | `segment` | <pre><code>yolo task=segment mode=train </code></pre> |
|
||||
| Classification | `classify` | <pre><code>yolo task=classify mode=train </code></pre> |
|
||||
| Detection | `detect` | <pre><code>yolo detect train </code></pre> |
|
||||
| Instance Segment | `segment` | <pre><code>yolo segment train </code></pre> |
|
||||
| Classification | `classify` | <pre><code>yolo classify train </code></pre> |
|
||||
|
||||
=== "Prediction"
|
||||
|
||||
| | `task` | snippet |
|
||||
|------------------|------------|--------------------------------------------------------------|
|
||||
| Detection | `detect` | <pre><code>yolo task=detect mode=predict </code></pre> |
|
||||
| Instance Segment | `segment` | <pre><code>yolo task=segment mode=predict </code></pre> |
|
||||
| Classification | `classify` | <pre><code>yolo task=classify mode=predict </code></pre> |
|
||||
| Detection | `detect` | <pre><code>yolo detect predict </code></pre> |
|
||||
| Instance Segment | `segment` | <pre><code>yolo segment predict </code></pre> |
|
||||
| Classification | `classify` | <pre><code>yolo classify predict </code></pre> |
|
||||
|
||||
=== "Validation"
|
||||
|
||||
| | `task` | snippet |
|
||||
|------------------|------------|-----------------------------------------------------------|
|
||||
| Detection | `detect` | <pre><code>yolo task=detect mode=val </code></pre> |
|
||||
| Instance Segment | `segment` | <pre><code>yolo task=segment mode=val </code></pre> |
|
||||
| Classification | `classify` | <pre><code>yolo task=classify mode=val </code></pre> |
|
||||
| Detection | `detect` | <pre><code>yolo detect val </code></pre> |
|
||||
| Instance Segment | `segment` | <pre><code>yolo segment val </code></pre> |
|
||||
| Classification | `classify` | <pre><code>yolo classify val </code></pre> |
|
||||
|
||||
!!! note ""
|
||||
|
||||
@ -44,19 +44,19 @@ supported task by setting `task` and `mode` in cli.
|
||||
|
||||
## Overriding default config arguments
|
||||
|
||||
All global default arguments can be overriden by simply passing them as arguments in the cli.
|
||||
Default arguments can be overriden by simply passing them as arguments in the CLI.
|
||||
|
||||
!!! tip ""
|
||||
|
||||
=== "Syntax"
|
||||
```bash
|
||||
yolo task= ... mode= ... {++ arg=val ++}
|
||||
yolo task mode arg=val...
|
||||
```
|
||||
|
||||
=== "Example"
|
||||
Perform detection training for `10 epochs` with `learning_rate` of `0.01`
|
||||
```bash
|
||||
yolo task=detect mode=train {++ epochs=10 lr0=0.01 ++}
|
||||
yolo detect train epochs=10 lr0=0.01
|
||||
```
|
||||
|
||||
---
|
||||
@ -67,23 +67,19 @@ You can override config file entirely by passing a new file. You can create a co
|
||||
current working dir as follows:
|
||||
|
||||
```bash
|
||||
yolo task=init
|
||||
yolo copy-config
|
||||
```
|
||||
|
||||
You can then use `cfg=name.yaml` command to pass the new config file
|
||||
You can then use `cfg=default_copy.yaml` command to pass the new config file along with any addition args:
|
||||
|
||||
```bash
|
||||
yolo cfg=default.yaml
|
||||
yolo cfg=default_copy.yaml args...
|
||||
```
|
||||
|
||||
??? example
|
||||
|
||||
=== "Command"
|
||||
```bash
|
||||
yolo task=init
|
||||
yolo cfg=default.yaml
|
||||
yolo copy-config
|
||||
yolo cfg=default_copy.yaml args...
|
||||
```
|
||||
=== "Results"
|
||||
TODO: add terminal output
|
||||
|
||||
|
||||
|
@ -38,13 +38,13 @@ include train, val, and predict.
|
||||
- Predict: The predict mode is used to make predictions with the model on new data. This mode is typically used in
|
||||
production or when deploying the model to users.
|
||||
|
||||
| Key | Value | Description |
|
||||
|--------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| task | `detect` | Set the task via CLI. See Tasks for all supported tasks like - `detect`, `segment`, `classify`.<br> - `init` is a special case that creates a copy of default.yaml configs to the current working dir |
|
||||
| mode | `train` | Set the mode via CLI. It can be `train`, `val`, `predict` |
|
||||
| resume | `False` | Resume last given task when set to `True`. <br> Resume from a given checkpoint is `model.pt` is passed |
|
||||
| model | null | Set the model. Format can differ for task type. Supports `model_name`, `model.yaml` & `model.pt` |
|
||||
| data | null | Set the data. Format can differ for task type. Supports `data.yaml`, `data_folder`, `dataset_name` |
|
||||
| Key | Value | Description |
|
||||
|--------|----------|--------------------------------------------------------------------------------------------------------|
|
||||
| task | `detect` | Set the task via CLI. See Tasks for all supported tasks like - `detect`, `segment`, `classify` |
|
||||
| mode | `train` | Set the mode via CLI. It can be `train`, `val`, `predict`, `export` |
|
||||
| resume | `False` | Resume last given task when set to `True`. <br> Resume from a given checkpoint is `model.pt` is passed |
|
||||
| model | null | Set the model. Format can differ for task type. Supports `model_name`, `model.yaml` & `model.pt` |
|
||||
| data | null | Set the data. Format can differ for task type. Supports `data.yaml`, `data_folder`, `dataset_name` |
|
||||
|
||||
### Training
|
||||
|
||||
@ -197,6 +197,6 @@ it easier to debug and optimize the training process.
|
||||
|-----------|---------|---------------------------------------------------------------------------------------------|
|
||||
| project: | 'runs' | The project name |
|
||||
| name: | 'exp' | The run name. `exp` gets automatically incremented if not specified, i.e, `exp`, `exp2` ... |
|
||||
| exist_ok: | `False` | ??? |
|
||||
| exist_ok: | `False` | Will replace current directory contents if set to True and output directory exists. |
|
||||
| plots | `False` | **Validation**: Save plots while validation |
|
||||
| nosave | `False` | Don't save any plots, models or files |
|
||||
| save | `False` | Save any plots, models or files |
|
@ -36,11 +36,11 @@ CLI requires no customization or code. You can simply run all tasks from the ter
|
||||
|
||||
=== "Example training"
|
||||
```bash
|
||||
yolo task=detect mode=train model=yolov8n.pt data=coco128.yaml device=0
|
||||
yolo detect train model=yolov8n.pt data=coco128.yaml device=0
|
||||
```
|
||||
=== "Example Multi-GPU training"
|
||||
```bash
|
||||
yolo task=detect mode=train model=yolov8n.pt data=coco128.yaml device=\'0,1,2,3\'
|
||||
yolo detect train model=yolov8n.pt data=coco128.yaml device=\'0,1,2,3\'
|
||||
```
|
||||
|
||||
[CLI Guide](cli.md){ .md-button .md-button--primary}
|
||||
|
@ -35,7 +35,7 @@ see the [Configuration](../config.md) page.
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
yolo task=classify mode=train data=mnist160 model=yolov8n-cls.pt epochs=100 imgsz=64
|
||||
yolo classify train data=mnist160 model=yolov8n-cls.pt epochs=100 imgsz=64
|
||||
```
|
||||
|
||||
## Val
|
||||
@ -60,8 +60,8 @@ it's training `data` and arguments as model attributes.
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
yolo task=classify mode=val model=yolov8n-cls.pt # val official model
|
||||
yolo task=classify mode=val model=path/to/best.pt # val custom model
|
||||
yolo classify val model=yolov8n-cls.pt # val official model
|
||||
yolo classify val model=path/to/best.pt # val custom model
|
||||
```
|
||||
|
||||
## Predict
|
||||
@ -85,8 +85,8 @@ Use a trained YOLOv8n-cls model to run predictions on images.
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
yolo task=classify mode=predict model=yolov8n-cls.pt source="https://ultralytics.com/images/bus.jpg" # predict with official model
|
||||
yolo task=classify mode=predict model=path/to/best.pt source="https://ultralytics.com/images/bus.jpg" # predict with custom model
|
||||
yolo classify predict model=yolov8n-cls.pt source="https://ultralytics.com/images/bus.jpg" # predict with official model
|
||||
yolo classify predict model=path/to/best.pt source="https://ultralytics.com/images/bus.jpg" # predict with custom model
|
||||
```
|
||||
|
||||
## Export
|
||||
@ -110,8 +110,8 @@ Export a YOLOv8n-cls model to a different format like ONNX, CoreML, etc.
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
yolo mode=export model=yolov8n-cls.pt format=onnx # export official model
|
||||
yolo mode=export model=path/to/best.pt format=onnx # export custom trained model
|
||||
yolo export model=yolov8n-cls.pt format=onnx # export official model
|
||||
yolo export model=path/to/best.pt format=onnx # export custom trained model
|
||||
```
|
||||
|
||||
Available YOLOv8-cls export formats include:
|
||||
|
@ -35,7 +35,7 @@ the [Configuration](../config.md) page.
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
yolo task=detect mode=train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640
|
||||
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640
|
||||
```
|
||||
|
||||
## Val
|
||||
@ -60,8 +60,8 @@ training `data` and arguments as model attributes.
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
yolo task=detect mode=val model=yolov8n.pt # val official model
|
||||
yolo task=detect mode=val model=path/to/best.pt # val custom model
|
||||
yolo detect val model=yolov8n.pt # val official model
|
||||
yolo detect val model=path/to/best.pt # val custom model
|
||||
```
|
||||
|
||||
## Predict
|
||||
@ -85,8 +85,8 @@ Use a trained YOLOv8n model to run predictions on images.
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
yolo task=detect mode=predict model=yolov8n.pt source="https://ultralytics.com/images/bus.jpg" # predict with official model
|
||||
yolo task=detect mode=predict model=path/to/best.pt source="https://ultralytics.com/images/bus.jpg" # predict with custom model
|
||||
yolo detect predict model=yolov8n.pt source="https://ultralytics.com/images/bus.jpg" # predict with official model
|
||||
yolo detect predict model=path/to/best.pt source="https://ultralytics.com/images/bus.jpg" # predict with custom model
|
||||
```
|
||||
|
||||
## Export
|
||||
@ -110,8 +110,8 @@ Export a YOLOv8n model to a different format like ONNX, CoreML, etc.
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
yolo mode=export model=yolov8n.pt format=onnx # export official model
|
||||
yolo mode=export model=path/to/best.pt format=onnx # export custom trained model
|
||||
yolo export model=yolov8n.pt format=onnx # export official model
|
||||
yolo export model=path/to/best.pt format=onnx # export custom trained model
|
||||
```
|
||||
|
||||
Available YOLOv8 export formats include:
|
||||
|
@ -35,7 +35,7 @@ arguments see the [Configuration](../config.md) page.
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
yolo task=segment mode=train data=coco128-seg.yaml model=yolov8n-seg.pt epochs=100 imgsz=640
|
||||
yolo segment train data=coco128-seg.yaml model=yolov8n-seg.pt epochs=100 imgsz=640
|
||||
```
|
||||
|
||||
## Val
|
||||
@ -60,8 +60,8 @@ retains it's training `data` and arguments as model attributes.
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
yolo task=segment mode=val model=yolov8n-seg.pt # val official model
|
||||
yolo task=segment mode=val model=path/to/best.pt # val custom model
|
||||
yolo segment val model=yolov8n-seg.pt # val official model
|
||||
yolo segment val model=path/to/best.pt # val custom model
|
||||
```
|
||||
|
||||
## Predict
|
||||
@ -85,8 +85,8 @@ Use a trained YOLOv8n-seg model to run predictions on images.
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
yolo task=segment mode=predict model=yolov8n-seg.pt source="https://ultralytics.com/images/bus.jpg" # predict with official model
|
||||
yolo task=segment mode=predict model=path/to/best.pt source="https://ultralytics.com/images/bus.jpg" # predict with custom model
|
||||
yolo segment predict model=yolov8n-seg.pt source="https://ultralytics.com/images/bus.jpg" # predict with official model
|
||||
yolo segment predict model=path/to/best.pt source="https://ultralytics.com/images/bus.jpg" # predict with custom model
|
||||
```
|
||||
|
||||
## Export
|
||||
@ -110,8 +110,8 @@ Export a YOLOv8n-seg model to a different format like ONNX, CoreML, etc.
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
yolo mode=export model=yolov8n-seg.pt format=onnx # export official model
|
||||
yolo mode=export model=path/to/best.pt format=onnx # export custom trained model
|
||||
yolo export model=yolov8n-seg.pt format=onnx # export official model
|
||||
yolo export model=path/to/best.pt format=onnx # export custom trained model
|
||||
```
|
||||
|
||||
Available YOLOv8-seg export formats include:
|
||||
|
Reference in New Issue
Block a user