当前位置: 首页 > article >正文

YOLOv8和YOLOv10的参数解释

文章目录


文件位置在/ultics/cfg/default.yaml

这段配置文件用于 Ultralytics YOLO 模型的训练、验证、预测和导出等操作。以下是每个参数的作用及其用途:

task: detect # 指定YOLO的任务类型,如检测(detect)、分割(segment)、分类(classify)、姿态(pose)等
mode: train # 指定当前模式,比如训练(train)、验证(val)、预测(predict)、导出(export)、跟踪(track)、基准测试(benchmark)等。
# -------------------------------------------
# 训练设置
# -------------------------------------------
model: # 指定模型文件的路径,如 yolov8n.pt 或自定义模型配置文件的路径
data: # 数据文件的路径,如 coco128.yaml,包含训练和验证数据集的配置。
epochs: 100 # 训练的总 epoch 数,即模型将进行多少轮训练。
time: # 指定训练的总时间(小时),如果设置了这个值,会覆盖 epochs 的设置。
patience: 100 # EarlyStopping 的耐心值,即在训练过程中如果验证集上的表现没有改善,最多等待多少 epoch 后停止训练。
batch: 16 # 每个批次的图像数量,-1 表示自动调整批次大小。
imgsz: 640 # 输入图像的尺寸,训练和验证模式下的图像大小。可以是单一整数(宽高相同)或列表(宽高不同)。
save: True # 是否保存训练检查点和预测结果。
save_period: -1 # 每隔多少 epoch 保存一次检查点,-1 表示禁用定期保存。
val_period: 1 # 每隔多少 epoch 进行一次验证。
cache: False # 数据加载时是否使用缓存。True 表示使用内存缓存,disk 表示使用磁盘缓存,False 表示不使用缓存。
device: # 指定设备,如 cuda:0(第一个 GPU)、cpu(CPU)等。
workers: 8 # 数据加载时的工作线程数量(每个分布式训练进程的线程数)。
project: # 项目名称,用于存储实验结果的文件夹名。
name: # 实验名称,结果将保存在 project/name 目录下。
exist_ok: False # 是否覆盖已存在的实验目录。
pretrained: True # 是否使用预训练模型。True 表示使用默认的预训练模型,False 表示不使用,或者可以指定一个自定义模型路径。
optimizer: auto # 优化器类型,自动选择优化器,或指定如 SGD、Adam、AdamW 等。
verbose: True # 是否打印详细输出信息。
seed: 0 # 随机种子,用于确保结果的可重复性。
deterministic: True # 是否启用确定性模式,确保结果一致。
single_cls: False # 是否将多类数据当作单一类别进行训练。
rect: False # 是否使用余弦学习率调度器。
cos_lr: False # (bool) use cosine learning rate scheduler
close_mosaic: 10 # 在训练的最后多少 epoch 禁用 mosaic 数据增强,0 表示禁用 mosaic 数据增强。
resume: False # 是否从上一个检查点恢复训练。
amp: True # 是否使用自动混合精度训练(AMP),可以加速训练并减少内存使用。
fraction: 1.0 # 训练数据集的比例,1.0 表示使用所有训练图像。
profile: False # 是否在训练期间对 ONNX 和 TensorRT 的速度进行分析。
freeze: None # 冻结前 n 层或指定层的索引,使其在训练中不更新。
multi_scale: False # 是否在训练中使用多尺度数据增强。
# -------------------------------------------
# 分割设置
# -------------------------------------------
overlap_mask: True # 是否在训练中允许掩膜重叠(仅适用于分割任务)。
mask_ratio: 4 # 掩膜下采样比率(仅适用于分割任务)。
# -------------------------------------------
# 分类设置
# -------------------------------------------
dropout: 0.0 # 是否在分类训练中使用 dropout 正则化。
# -------------------------------------------
# 验证/测试设置
# -------------------------------------------
val: True # 是否在训练期间进行验证或测试。
split: val # 用于验证的数据集划分类型,如 val、test 或 train。
save_json: False # 是否将结果保存到 JSON 文件中。
save_hybrid: False # 是否保存混合版本的标签(标签 + 额外的预测)。
conf: # 对于检测任务的对象置信度阈值。
iou: 0.7 # NMS(非极大值抑制)的 IoU 阈值
max_det: 300 # 每张图像的最大检测数。
half: False # 是否使用半精度(FP16)。
dnn: False # 是否使用 OpenCV DNN 进行 ONNX 推理。
plots: True # 是否保存训练/验证过程中的图表和图像。

# -------------------------------------------
# 预测设置
# -------------------------------------------
source: # 指定图像或视频的源目录
vid_stride: 1 # 视频的帧率步幅
stream_buffer: False # 是否缓冲所有流媒体帧(True)或返回最新的帧(False)。
visualize: False # 是否可视化模型特征。
augment: False # 是否对预测源应用图像增强
agnostic_nms: False # 是否使用类无关的 NMS。
classes: # 指定要过滤的类别
retina_masks: False # 是否使用高分辨率分割掩膜。
embed: # 回指定层的特征向量/嵌入。

# -------------------------------------------
# 可视化设置
# -------------------------------------------
show: False # 是否显示预测的图像和视频(如果环境允许)
save_frames: False # 是否保存预测的单个视频帧
save_txt: False # 是否将结果保存为 .txt 文件
save_conf: False # 是否保存结果的置信度分数
save_crop: False # 是否保存裁剪后的图像及其结果
show_labels: True # 是否显示预测标签,如 person
show_conf: True # 是否显示预测置信度,如 0.99
show_boxes: True # 是否显示预测边界框
line_width: # 指定边界框的线宽。如果为 None,则根据图像大小缩放

# -------------------------------------------
# 导出设置
# -------------------------------------------
format: torchscript # 导出格式,可以是 torchscript、onnx、coreml 等。
keras: False # 是否使用 Keras 进行导出
optimize: False # 对 TorchScript 模型进行移动端优化
int8: False # 对 CoreML/TF 进行 INT8 量化
dynamic: False # 对 ONNX/TF/TensorRT 使用动态轴
simplify: False # 是否简化 ONNX 模型
opset: # 指定 ONNX 操作集版本
workspace: 4 # TensorRT 的工作区大小(GB)
nms: False # 对 CoreML 添加 NMS

# 超参数--------------------------------
lr0: 0.01 # 初始学习率。决定了模型参数在每次更新时的步长。较大的学习率可能导致训练不稳定,较小的学习率则可能导致收敛速度慢。
lrf: 0.01 # 最终学习率(lr0 * lrf)。学习率衰减系数,通常在训练过程中逐渐减少学习率,以帮助模型在训练的后期更稳定地收敛。
momentum: 0.937 # 动量(用于 SGD 优化器)或 Adam 优化器的 beta1。动量帮助加速收敛,并减少训练过程中的振荡。
weight_decay: 0.0005 # 权重衰减(L2 正则化)。防止过拟合,增加模型的泛化能力
warmup_epochs: 3.0 # 预热阶段的 epoch 数。在训练开始时使用较小的学习率逐渐增大,有助于提高模型的稳定性。
warmup_momentum: 0.8 # 预热阶段的初始动量。动量在预热阶段的值,帮助训练初期更平稳。
warmup_bias_lr: 0.1 # 预热阶段的初始偏置学习率。对偏置项的学习率进行预热处理。
box: 7.5 # 边界框损失的权重系数。调整边界框损失在总损失中的权重。
cls: 0.5 # 类别损失的权重系数。调整类别损失在总损失中的权重。
dfl: 1.5 # DFL(Distribution Focal Loss)损失的权重系数。用于目标检测中的分布焦点损失。
pose: 12.0 # 姿态损失的权重系数(仅适用于姿态估计任务)
kobj: 1.0 #  关键点对象损失的权重系数。调整关键点检测中的损失权重。
label_smoothing: 0.0 # 标签平滑系数。减少模型对训练数据的过拟合,通过平滑标签来提高模型的泛化能力。
nbs: 64 # 理想的批次大小。用于参考,以便根据 GPU 内存自动调整批次大小。
# -------------------------------------------
# 数据增强设置
# -------------------------------------------
hsv_h: 0.015 #  HSV 色调的增强比例。对图像进行色调调整的范围
hsv_s: 0.7 #  HSV 饱和度的增强比例。对图像进行饱和度调整的范围
hsv_v: 0.4 # HSV 亮度的增强比例。对图像进行亮度调整的范围
degrees: 0.0 #  图像旋转角度范围。定义图像旋转的最大角度
translate: 0.1 # 图像平移范围。图像的最大平移比例
scale: 0.5 #  图像缩放范围。定义图像缩放的比例
shear: 0.0 # 图像剪切范围。图像剪切的最大角度
perspective: 0.0 # 图像透视变换范围。图像的透视变换比例,范围是 0 到 0.001
flipud: 0.0 # 图像上下翻转的概率。0.0 表示不进行上下翻转
fliplr: 0.5 # 图像左右翻转的概率。0.5 表示有 50% 的概率进行左右翻转。
bgr: 0.0 # 图像通道 BGR 的概率。0.0 表示不进行 BGR 通道转换。
mosaic: 1.0 # Mosaic 数据增强的概率。1.0 表示总是进行 Mosaic 数据增强
mixup: 0.0 # 图像 mixup 的概率。0.0 表示不使用 mixup 数据增强
copy_paste: 0.0 # 图像 copy-paste 的概率。0.0 表示不使用 copy-paste 数据增强
auto_augment: randaugment # 自动数据增强策略。randaugment、autoaugment 或 augmix 等。
erasing: 0.4 # 随机擦除的概率。用于分类训练中,增强数据的多样性。
crop_fraction: 1.0 # 分类评估/推理中的图像裁剪比例。1.0 表示使用完整图像。


cfg: # 自定义配置文件路径。用于覆盖默认的 defaults.yaml 配置。


tracker: botsort.yaml # 跟踪器类型。选择不同的跟踪器配置文件,如 botsort.yaml 或 bytetrack.yaml。

http://www.kler.cn/a/303258.html

相关文章:

  • 计算机网络 (1)互联网的组成
  • 基于yolov8、yolov5的鱼类检测识别系统(含UI界面、训练好的模型、Python代码、数据集)
  • MySQL(5)【数据类型 —— 字符串类型】
  • 算法——长度最小的子数组(leetcode209)
  • 软件工程师简历(精选篇)
  • 前端框架大比拼:React.js, Vue.js 及 Angular 的优势与适用场景探讨
  • 嵌入式Linux学习笔记(2)-C语言编译过程
  • 如何实现将对象序列化为JSON字符串,并且所有的键首字母都为小写?
  • Go语言中的链表与双向链表实现
  • Linux 基本指令(一)
  • Linux内核学习之 -- 系统调用open()和write()的实现笔记
  • Spring Boot集成Akka Stream快速入门Demo
  • c++stack和list 介绍
  • 20. 如何在MyBatis中处理多表关联查询?常见的实现方式有哪些?
  • 数据分析-26-时间序列预测之基于ARIMA的时间序列数据分析
  • k8s命名详解
  • Redis地理数据类型GEO
  • 通信工程学习:什么是FDMA频分多址
  • Games101笔记-线性代数(一)
  • WORD批量转换器MultiDoc Converter
  • 第 11篇 Helm 部署 RabbitMQ
  • flink的大状态复用
  • C++——一道关于多态的经典面试题
  • 宠物空气净化器应该怎么选择才能选到除毛效果好的产品
  • mysql-搭建主从复制
  • pdf怎么压缩?分享5种压缩PDF文件的方法