How to use the command 'yolo' (with examples)
The YOLO (You Only Look Once) command-line interface is a powerful tool for handling various deep learning tasks, including object detection, instance segmentation, and classification. This interface streamlines the process of training, validating, and inferring machine learning models, making it more accessible for both beginners and seasoned practitioners. With easy-to-use commands, users can manage configurations, execute training tasks, and push projects from experimentation to production.
Use case 1: Create a copy of the default configuration in your current working directory
Code:
yolo task=init
Motivation for using this example:
The command yolo task=init
is incredibly useful when you want to rapidly start a project by generating a default configuration that can be easily edited to fit your specific needs. Instead of creating a configuration file from scratch, which can be cumbersome and prone to errors, you can use this command to get a working template that serves as a solid foundation for further customization and experimentation.
Explanation of each argument:
task=init
: This argument tells the YOLO CLI to initialize a task by creating a default configuration file. The configuration file acts as a blueprint, outlining various parameters and settings that govern how the machine learning model will be trained, validated, and inferred. By initializing this way, you ensure that all essential aspects of the model configuration are captured, streamlining setup time and minimizing the likelihood of missing critical parameters.
Example output: Upon executing the command, a configuration YAML file is generated in the current directory. It typically contains various configurable sections like model architecture, learning rate, dataset paths, and augmentation strategies. You will see an output that acknowledges the creation of this file, such as:
Default configuration file 'config.yaml' has been created successfully.
Use case 2: Train the object detection, instance segmentation, or classification model with the specified configuration file
Code:
yolo task=detect|segment|classify mode=train cfg=path/to/config.yaml
Motivation for using this example:
Once you have a suitable configuration file, the next logical step is to begin training your model. The command yolo task=detect|segment|classify mode=train cfg=path/to/config.yaml
allows you to specify whether you’re training for object detection, instance segmentation, or classification. This adaptability makes it an essential step in the model development lifecycle, enabling you to hone in on the specific task your project demands, thereby producing a model that performs optimally for your unique dataset and objectives.
Explanation of each argument:
task=detect|segment|classify
: This argument specifies the type of task you are dealing with. Selecting the correct task is crucial as it determines the architecture and methods used to train the model. ‘detect’ is for object detection tasks, ‘segment’ is for instance segmentation tasks, and ‘classify’ is for classification tasks.mode=train
: This argument defines the operational mode of the command. By setting it to ’train’, you instruct the CLI to commence the training process using the specified configurations and data.cfg=path/to/config.yaml
: This is the path to your configuration YAML file. The file provides the YOLO command-line interface with all the necessary parameters, such as dataset paths, hyperparameters, augmentation techniques, and any model-specific configurations, ensuring that training is conducted under the specified conditions and settings.
Example output: After executing the command, the training process begins, and you can see the progress through your command-line interface. Typically, the output includes informative logs about epoch progress, training loss, validation metrics, and time per epoch. A sample output might look like this:
Starting training for object detection...
Epoch 1/100: Loss: 0.0453, Validation Accuracy: 85.2%
Epoch 2/100: Loss: 0.0387, Validation Accuracy: 86.3%
...
Training complete. Best model saved as 'best_weights.pt'.
Conclusion:
The YOLO command-line interface provides an efficient and streamlined way to initialize, train, and manage models for tasks such as object detection, instance segmentation, and classification. By using commands like yolo task=init
and yolo task=detect|segment|classify mode=train cfg=path/to/config.yaml
, users can quickly establish a project, generate necessary configuration templates, and swiftly move into training and adjusting models. This capability not only saves time but also ensures a high-quality setup that is free of common configuration errors, allowing for focused efforts on improving model performance and accuracy.