【yolov5】数据格式、参数、输出结果 分析

本文内容

    1. yolov5 的数据格式
    1. 介绍 yolov5 模型中 train,py 的相关参数
    1. 介绍输出展示的内容都是什么含义

一、yolov5 的数据格式

1.1 数据格式:label_index,cx, cy,w,h

  • label_index :为标签名称在标签数组中的索引,下标从 0 开始。
  • cx:标记框中心点的 x 坐标,数值是原始中心点 x 坐标除以 图宽 后的结果。
  • cy:标记框中心点的 y 坐标,数值是原始中心点 y 坐标除以 图高 后的结果。
  • w:标记框的 宽,数值为 原始标记框的 宽 除以 图宽 后的结果。
  • h:标记框的 高,数值为 原始标记框的 高 除以 图高 后的结果。

1.2 样例

【yolov5】数据格式、参数、输出结果 分析_第1张图片

1.3 数据集的存储格式

【yolov5】数据格式、参数、输出结果 分析_第2张图片

二、 train.py 中相关参数

自己尝试修改过的参数

  • –weigths: 指的是训练好的网络模型,用来初始化网络权重。为空时从头开始训练
  • –cfg:网络结构配置文件。其中 nc 表示标签数据中有多少类别。
  • –data:数据路径。数据集存储路径结构参考 1.3 部分。
      1. 指向数据存储的根路径,例如训练集:root_path / images / train / ,此路径下存储所有训练数据的图片。
      1. 指向存储图片路径的 txt 文件,txt 文件每一行内容为一张图片的绝对路径。例如:…/ coco / train2017.txt 。
      1. 无论采用两种方式中的哪一种,此配置文件中都指定了 【标签数量】、【标签名称】。
  • –epochs:训练迭代次数
  • –batch-size:每次喂给神经网络的图片数量,一般设置为 2 的 n 次幂。
  • –imgsz:训练图片尺寸。第一个参数为训练集图片的输入尺寸,第二个参数为测试集图片的输入尺寸,需要设置为 32 的倍数(网络进行过程中会进行 32 倍下采样)。
  • –nosave: 只保留最终网络模型。
      1. default = True ,只保留最后一次的训练结果,中间过程的权重文件(.pt)不进行保存。
      1. default = False , 训练过程中产生的权重文件,进行可选择性的保存。
        【yolov5】数据格式、参数、输出结果 分析_第3张图片
  • –notest :是否只在训练完成后,对验证集进行测试。
    • default = True ,只在训练完成后,进行一次测试。
    • default = False ,每一个 epoch 完成后都对验证集进行测试。
      【yolov5】数据格式、参数、输出结果 分析_第4张图片
  • –device:训练网络的设备cpu还是gpu
  • –project:训练结果保存路径。即输出结果 results.txt 、权重文件,存储的根路径。默认名称为 runs。
  • –name: 训练结果保存文件名。在project 对应的文件夹中,默认问 exp (看到一篇文章中说,超过10个之后,会循环覆盖)。
    • –save-period:训练多少次保存一次网络模型。(应该综合 --nosave 同时考虑)

以下参数还未尝试修改。

参考链接:https://blog.csdn.net/weixin_42638415/article/details/120799608

  • –hyp: 训练网络的一些超参数设置
  • –rect: 是否采用矩形训练
  • –resume: 指定你之前训练的网络模型,是否从最近的上一个模型开始训练。
  • –noautoanchor:是否采用锚点检查
  • –evolve:是否寻找最优参数
  • –bucket:gsutil bucket
  • –cache:是否对图片进行缓存,加快训练
  • –image-weights:测试过程中,图像的那些测试地方不太好,对这些不太好的地方加权重
  • –multi-scale:图片尺度变换
  • –single-cls:训练数据集是单类别还是多类别
  • –adam:是否采用adam
  • –sync-bn:分布式训练
  • –local_rank:DDP参数,请勿修改。
  • –workers: 多线程训练,设置最多多少个线程同时进行分布式的训练。个人理解,线程之间的交互也会耗时。
  • –entity :W&B entity
  • –exist-ok: 覆盖掉上一次的结果,不新建训练结果文件
  • –quad:在dataloader时采用什么样的方式读取我们的数据
  • –linear-lr:按照线性的方式去调整学习率
  • –label-smoothing: 对标签平滑,防止过拟合
  • –upload_dataset:Upload dataset as W&B artifact table
  • –bbox_interval:Set bounding-box image logging interval for W&B

三、输出结果分析

3.1 训练时,屏幕中的输出结果

在这里插入图片描述

3.2 log文件,results.txt 文件中的内容分析

参考链接:https://blog.csdn.net/thy0000/article/details/125281995
【yolov5】数据格式、参数、输出结果 分析_第5张图片

  • results.txt中最后三列是验证集结果,前面的是训练集结果。
  • 训练次数,GPU消耗,边界框损失,目标检测损失,分类损失,total,targets,图片大小,P,R,[email protected], [email protected]:.95, 验证集val Box, 验证集val obj, 验证集val cls

你可能感兴趣的:(神经网络,python)