语义分割——YOLOv8-Seg 参数汇总与调参建议
train 参数
参数 默认值 说明 调参建议
model None 模型文件的路径,如 yolov8m.pt -
data None 数据文件的路径,如 coco128.yaml -
epochs 100 训练周期 根据数据集大小和模型复杂度调整
time None 训练的小时数,如果已提供,则覆盖epochs 如果有时间限制,可设置该参数
patience 50 在没有明显改善的情况下,提前停止训练的等待时间 根据训练过程中的收敛情况调整
batch 16 每批图像数(-1 表示自动批次) 根据 GPU 内存大小调整
imgsz 640 输入图像尺寸 根据数据集图像大小和硬件限制(如 GPU 内存)调整
save True 是否 保存训练 checkpoint 和 预测结果 -
save_period -1 每 x 周期保存一次 checkpoint(如果 < 1 则禁用) -
cache False 是否 使用缓存加载数据 根据数据集大小和加载速度决定
device None 运行设备,如device = 0或device = cpu 根据硬件资源分配合适的设备
workers 8 加载数据的工作线程数 根据系统资源和数据集大小调整
project None 项目名称 -
name None 实验名称 -
exist_ok False 是否 覆盖现有实验 -
pretrained True 是 使用预训练模型 还是 使用模型加载权重 -
optimizer auto 使用的 优化器,选择 = [SGD、Adam、Adamax、AdamW、NAdam、RAdam、RMSProp、auto](auto表示系统自动动态选择优化器) 根据模型和数据选择最优优化器
verbose False 是否 打印详细输出 -
seed 0 随机种子 设置种子以保证实验可重复性
deterministic True 是否 启用确定性模式 在需要确保结果一致性时启用
single_cls False 是否 将多类别数据当作单一类别训练 在单类别训练场景中启用
rect False 矩形训练,每批都经过整理,以减少填充物 -
cos_lr False 是否 使用余弦学习率调度器 有助于细致调整模型参数,适用于长周期训练
close_mosaic 10 最后 x 个周期 禁用 mosaic 数据增强 根据训练进展调整增强策略(参考:数据增强之 Mosaic - 知乎 (zhihu.com))
resume False 是否 从上一个 checkpoint 恢复训练 -
amp True 是否 使用自动混合精度(AMP)训练 在硬件支持的情况下启用以提高训练效率(利用半精度浮点数加速训练过程,可以减少显存占用)
fraction 1.0 训练集使用的数据比例 -
profile False 训练期间是否 分析 ONNX 和 TensorRT 速度 -
freeze None 在训练过程中 冻结前 n 层,或冻结层索引列表 在迁移学习场景中冻结特定层
lr0 0.01 初始学习率 根据模型和数据集大小调整
lrf 0.01 最终学习率 根据训练策略调整
momentum 0.937 SGD 动量 / Adam 的 beta1 根据优化器类型和训练过程调整
weight_decay 0.0005 优化器权重衰减 防止过拟合时调整,过大会导致欠拟合
warmup_epochs 3.0 预热周期数(可以是分数) 根据模型和数据集调整热身期
warmup_momentum 0.8 预热初始动量 在预热时调整动量以稳定训练
warmup_bias_lr 0.1 预热偏置的学习率 在预热时适当提高偏置项的学习率
box 7.5 边框损失增益(值越大越表强调) 根据训练输出的box_loss调整
cls 0.5 类别损失增益(值越大越表强调,按像素缩放) 根据训练输出的cls_loss调整
dfl 1.5 DFL 损失增益 根据训练输出的dfl_loss调整
pose 12.0 姿态损失增益(仅 pose 训练) -
kobj 2.0 关键点对象损失增益(仅 pose 训练) -
label_smoothing 0.0 标签平滑,一种正则化技术,用于减少模型对训练数据的过拟合程度 在多类别分类中使用以提高整体泛化性,通常取0.1,过大会导致欠拟合
nbs 64 标称批量,训练过程中每个批次的大小 根据 GPU 内存和模型大小调整
overlap_mask True 是否 遮罩应在训练期间重叠(仅 seg 训练) -
mask_ratio 4 mask 降采样比率(仅 seg 训练,mask 的尺寸将缩小为原来的 1/x) -
dropout 0.0 使用 dropout 正则化(仅 cls 训练) 如果设置为非零值,则在训练过程中使用丢弃正则化来 减少模型的过拟合
val True 是否 在训练期间验证/测试 -
plots False 是否 在训练/评估过程中保存绘图和图像 -
predict 参数
参数 默认值 说明 调参建议
source ultralytics/assets 图片或视频的源目录 -
conf 0.25 用于检测的 对象置信阈值,只有置信度高于此阈值的对象才会被检测出来 根据训练结果的F1_curve.png调整
iou 0.7 非极大值抑制(NMS)的交并比(IoU)阈值 用于去除重叠的检测框,只保留具有最高置信度的框
imgsz 640 输入图像尺寸 根据数据集图像大小和硬件限制(如 GPU 内存)调整
half False 使用 半精度(FP16) 半精度可以减少计算量,但可能会牺牲一些精度
device None 运行设备,如device = 0或device = cpu 根据硬件资源分配合适的设备
max_det 300 每个图像的最大检测数 根据实际应用场景和性能需求调整
vid_stride False 视频帧率步长 根据需要调整视频处理的帧率
stream_buffer False 缓冲所有流帧(True)或 返回最近的帧(False) 根据实时处理需求和资源限制调整
visualize False 是否 可视化模型特征 -
augment False 是否 对预测源应用图像增强 -
agnostic_nms False 是否使用 类别不可知(无关)的非极大值抑制(NMS) 在检测不区分类别的应用场景中启用
classes None 按类别筛选结果,即classes = 0或classes = [0,2,3] -
retina_masks False 是否使用 高分辨率的分割掩膜 在进行高精度分割任务时启用
embed None 返回给定层的特征向量/嵌入 -
show False 如果环境允许,是否 显示预测的图像和视频 -
save False 是否 保存 预测的 图像和视频 -
save_frames False 是否 保存 预测的 单个视频帧 -
save_txt False 是否将 结果保存为 .txt 文件 -
save_conf False 是否将 检测结果与置信度分数一起保存 -
save_crop False 是否 保存裁剪的图像与结果 -
show_labels True 是否 显示预测标签 -
show_conf True 是否 显示预测置信度 -
show_boxes True 是否 显示预测边界框 -
line_width Noneorint 边界框的线宽(如果为None,则缩放为图像大小) 根据可视化需求和图像大小调整