Reference for ultralytics/models/yolo/detect/train.py
Note
This file is available at https://github.com/ultralytics/ultralytics/blob/main/ultralytics/models/yolo/detect/train.py. If you spot a problem please help fix it by contributing a Pull Request 🛠️. Thank you 🙏!
ultralytics.models.yolo.detect.train.DetectionTrainer
Bases: BaseTrainer
A class extending the BaseTrainer class for training based on a detection model.
This trainer specializes in object detection tasks, handling the specific requirements for training YOLO models for object detection.
Attributes:
Name | Type | Description |
---|---|---|
model |
DetectionModel
|
The YOLO detection model being trained. |
data |
dict
|
Dictionary containing dataset information including class names and number of classes. |
loss_names |
Tuple[str]
|
Names of the loss components used in training (box_loss, cls_loss, dfl_loss). |
Methods:
Name | Description |
---|---|
build_dataset |
Build YOLO dataset for training or validation. |
get_dataloader |
Construct and return dataloader for the specified mode. |
preprocess_batch |
Preprocess a batch of images by scaling and converting to float. |
set_model_attributes |
Set model attributes based on dataset information. |
get_model |
Return a YOLO detection model. |
get_validator |
Return a validator for model evaluation. |
label_loss_items |
Return a loss dictionary with labeled training loss items. |
progress_string |
Return a formatted string of training progress. |
plot_training_samples |
Plot training samples with their annotations. |
plot_metrics |
Plot metrics from a CSV file. |
plot_training_labels |
Create a labeled training plot of the YOLO model. |
auto_batch |
Calculate optimal batch size based on model memory requirements. |
Examples:
>>> from ultralytics.models.yolo.detect import DetectionTrainer
>>> args = dict(model="yolo11n.pt", data="coco8.yaml", epochs=3)
>>> trainer = DetectionTrainer(overrides=args)
>>> trainer.train()
Source code in ultralytics/engine/trainer.py
auto_batch
Get optimal batch size by calculating memory occupation of model.
Returns:
Type | Description |
---|---|
int
|
Optimal batch size. |
Source code in ultralytics/models/yolo/detect/train.py
build_dataset
Build YOLO Dataset for training or validation.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
img_path
|
str
|
Path to the folder containing images. |
required |
mode
|
str
|
|
'train'
|
batch
|
int
|
Size of batches, this is for |
None
|
Returns:
Type | Description |
---|---|
Dataset
|
YOLO dataset object configured for the specified mode. |
Source code in ultralytics/models/yolo/detect/train.py
get_dataloader
Construct and return dataloader for the specified mode.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
dataset_path
|
str
|
Path to the dataset. |
required |
batch_size
|
int
|
Number of images per batch. |
16
|
rank
|
int
|
Process rank for distributed training. |
0
|
mode
|
str
|
'train' for training dataloader, 'val' for validation dataloader. |
'train'
|
Returns:
Type | Description |
---|---|
DataLoader
|
PyTorch dataloader object. |
Source code in ultralytics/models/yolo/detect/train.py
get_model
Return a YOLO detection model.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
cfg
|
str
|
Path to model configuration file. |
None
|
weights
|
str
|
Path to model weights. |
None
|
verbose
|
bool
|
Whether to display model information. |
True
|
Returns:
Type | Description |
---|---|
DetectionModel
|
YOLO detection model. |
Source code in ultralytics/models/yolo/detect/train.py
get_validator
Return a DetectionValidator for YOLO model validation.
Source code in ultralytics/models/yolo/detect/train.py
label_loss_items
Return a loss dict with labeled training loss items tensor.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
loss_items
|
List[float]
|
List of loss values. |
None
|
prefix
|
str
|
Prefix for keys in the returned dictionary. |
'train'
|
Returns:
Type | Description |
---|---|
Dict | List
|
Dictionary of labeled loss items if loss_items is provided, otherwise list of keys. |
Source code in ultralytics/models/yolo/detect/train.py
plot_metrics
plot_training_labels
Create a labeled training plot of the YOLO model.
Source code in ultralytics/models/yolo/detect/train.py
plot_training_samples
Plot training samples with their annotations.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
batch
|
dict
|
Dictionary containing batch data. |
required |
ni
|
int
|
Number of iterations. |
required |
Source code in ultralytics/models/yolo/detect/train.py
preprocess_batch
Preprocess a batch of images by scaling and converting to float.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
batch
|
dict
|
Dictionary containing batch data with 'img' tensor. |
required |
Returns:
Type | Description |
---|---|
dict
|
Preprocessed batch with normalized images. |
Source code in ultralytics/models/yolo/detect/train.py
progress_string
Return a formatted string of training progress with epoch, GPU memory, loss, instances and size.
Source code in ultralytics/models/yolo/detect/train.py
set_model_attributes
Set model attributes based on dataset information.