训练设置
arg | 默认值 |
说明 | |
model |
None | 指定用于训练的模型文件。接受指向 .pt 预训练模型或 .yaml 配置文件。对于定义模型结构或初始化权重至关重要。 |
|
data | None | 数据集配置文件的路径(例如 coco128.yaml ).该文件包含特定于数据集的参数,包括训练数据和验证数据的路径、类名和类数。 |
|
epochs | 100 | 训练轮次总数。每个历元代表对整个数据集进行一次完整的训练。调整该值会影响训练时间和模型性能。 |
|
time |
|
最长训练时间(小时)。如果设置了该值,则会覆盖 epochs 参数,允许训练在指定的持续时间后自动停止。对于时间有限的训练场景非常有用。 |
|
patience | 100 | 在验证指标没有改善的情况下,提前停止训练所需的历元数。当性能趋于平稳时停止训练,有助于防止过度拟合。 | |
batch | 16 | 训练的批量大小,表示在更新模型内部参数之前要处理多少张图像。自动批处理 (batch=-1 )会根据 GPU 内存可用性动态调整批处理大小。 |
|
imgsz | 640 | 用于训练的目标图像尺寸。所有图像在输入模型前都会被调整到这一尺寸。影响模型精度和计算复杂度。 | |
save | True | 可保存训练检查点和最终模型权重。这对恢复训练或模型部署非常有用。 | |
save_period | -1 | 保存模型检查点的频率,以 epochs 为单位。值为-1 时将禁用此功能。该功能适用于在长时间训练过程中保存临时模型。 | |
cache |
False |
在内存中缓存数据集图像 (True /ram )、磁盘 (disk ),或禁用它 (False ).通过减少磁盘 I/O 提高训练速度,但代价是增加内存使用量。 |
|
device |
None |
指定用于训练的计算设备:单个 GPU (device=0 )、多个 GPU (device=0,1 )、CPU (device=cpu ),或苹果芯片的 MPS (device=mps ). |
|
workers |
8 |
加载数据的工作线程数(每 RANK 多 GPU 训练)。影响数据预处理和输入模型的速度,尤其适用于多 GPU 设置。 |
|
project |
None |
保存训练结果的项目目录名称。允许有组织地存储不同的实验。 | |
name |
None |
训练运行的名称。用于在项目文件夹内创建一个子目录,用于存储训练日志和输出结果。 | |
exist_ok |
False |
如果为 True,则允许覆盖现有的项目/名称目录。这对迭代实验非常有用,无需手动清除之前的输出。 | |
pretrained |
True |
决定是否从预处理模型开始训练。可以是布尔值,也可以是加载权重的特定模型的字符串路径。提高训练效率和模型性能。 | |
optimizer |
'auto' |
为培训选择优化器。选项包括 SGD , Adam , AdamW , NAdam , RAdam , RMSProp 等,或 auto 用于根据模型配置进行自动选择。影响收敛速度和稳定性 |
|
verbose |
False |
在训练过程中启用冗长输出,提供详细日志和进度更新。有助于调试和密切监控培训过程。 | |
seed |
0 |
为训练设置随机种子,确保在相同配置下运行的结果具有可重复性。 | |
deterministic |
True |
强制使用确定性算法,确保可重复性,但由于对非确定性算法的限制,可能会影响性能和速度。 | |
single_cls |
False |
在训练过程中将多类数据集中的所有类别视为单一类别。适用于二元分类任务,或侧重于对象的存在而非分类。 | |
rect |
False |
可进行矩形训练,优化批次组成以减少填充。这可以提高效率和速度,但可能会影响模型的准确性。 | |
cos_lr |
False |
利用余弦学习率调度器,根据历时的余弦曲线调整学习率。这有助于管理学习率,实现更好的收敛。 | |
close_mosaic |
10 |
在训练完成前禁用最后 N 个历元的马赛克数据增强以稳定训练。设置为 0 则禁用此功能。 | |
resume |
False |
从上次保存的检查点恢复训练。自动加载模型权重、优化器状态和历时计数,无缝继续训练。 | |
amp |
True |
启用自动混合精度 (AMP) 训练,可减少内存使用量并加快训练速度,同时将对精度的影响降至最低。 | |
fraction |
1.0 |
指定用 |