YOLOv8和YOLOv10的参数解释

news/2024/10/9 12:53:09/

文章目录


文件位置在/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.ppmy.cn/news/1526860.html

相关文章

商标申请注册加字加成通用词等于没加!

以前普推知产商标曾分析过“东方甄选”火遍全网后,许多人申请注册商标都喜欢加“甄选”,但是“甄选”基本属于通用词了,加“甄选”后还是属于前面那个词。 近期看到有人加“心选”,甄选,优选,心选等还都是选…

基于深度学习的图像分类或识别系统(含全套项目+PyQt5界面)

目录 一、项目界面 二、代码实现 1、网络代码 2、训练代码 3、评估代码 4、结果显示 三、项目代码 一、项目界面 二、代码实现 1、网络代码 该网络基于残差模型修改 import torch import torch.nn as nn import torchvision.models as modelsclass resnet18(nn.Modul…

C++ | Leetcode C++题解之第409题最长回文串

题目&#xff1a; 题解&#xff1a; class Solution { public:int longestPalindrome(string s) {unordered_map<char, int> count;int ans 0;for (char c : s)count[c];for (auto p : count) {int v p.second;ans v / 2 * 2;if (v % 2 1 and ans % 2 0)ans;}retur…

深度学习速通系列:依存分析

依存分析&#xff08;Dependency Parsing&#xff09;是自然语言处理&#xff08;NLP&#xff09;中的一项任务&#xff0c;目的是确定句子中单词之间的依存关系&#xff0c;并将这些关系表示为一个有向图&#xff0c;通常称为依存树。在依存树中&#xff0c;每个节点代表一个单…

电脑安装OpenWRT系统

通过网盘分享的文件&#xff1a;OpenWRT 链接: https://pan.baidu.com/s/1nrRBeKgGviD31Omji480qA?pwd9900 提取码: 9900 下面开始教程&#xff1a; 1.先把普通U盘制作成一个PE启动盘&#xff0c;我用的是微PE工具箱&#xff0c;直接安装PE到U盘。 2.把写盘工具和openWRT系统…

高级java每日一道面试题-2024年9月13日-基础篇-如何测试事务的正确性?

如果有遗漏,评论区告诉我进行补充 面试官: 如何测试事务的正确性&#xff1f; 我回答: 在Java高级面试中&#xff0c;测试事务的正确性是一个重要的话题&#xff0c;因为事务管理对于确保数据的一致性和完整性至关重要。事务的正确性测试通常涉及多个方面&#xff0c;包括原…

linux-系统备份与恢复-系统恢复

Linux 系统备份与恢复&#xff1a;系统恢复 1. 概述 Linux 系统的恢复是系统管理的重要组成部分&#xff0c;它指的是在系统崩溃、硬件故障、误操作或安全问题后&#xff0c;恢复系统到可用状态的过程。良好的系统恢复计划可以有效避免数据丢失和业务中断&#xff0c;并确保系…

初中生物--4.生物体的结构层次(二)

一、植物体的结构层次 1.绿色开花植物的六大器官 根、茎、叶、花、种子、果实 2.植物的组织 3.植物体的生长 植物体的生长是细胞分裂、生长和分化的综合结果。在植物体的生长过程中&#xff0c;细胞不断分裂产生新的细胞&#xff0c;新细胞不断生长使细胞体积增大&#xff…