目录
语义分割——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 | None orint | 边界框的线宽(如果为None ,则缩放为图像大小) | 根据可视化需求和图像大小调整 |