YOLOv5实战记录04 模型训练

个人打卡,慎看。

指路大佬:【手把手带你实战YOLOv5-入门篇】YOLOv5 模型训练_哔哩哔哩_bilibili

一、数据集

首先提到了两个概念,训练集和验证集。我机器学习0基础,于是查找了资料。

 数据集一般分为三类:训练集、验证集和测试集。

  • 训练集:训练模型, 用于模型拟合的数据样本。不能反映模型真实的能力。
  • 验证集:模型训练过程中单独留出的样本集,需要选择超参数,可以评估不同超参数训练出的模型效果,优化模型。参与了 “人工调参” 的训练过程。
  • 测试集:评估最终模型效果。

个人白话理解:训练集是普通数据;验证集是挑取一部分非训练集,人工为其添加参数,不断优化;测试集是测试包含所有数据的模型效果。 

如果人工修改大部分数据的参数,速度会很慢,所以验证集只验证一部分数据,并不是所有的数据。所有数据会在测试集评定效果。

参考:

  • 训练集、验证集、测试集以及交验验证的理解_训练集 验证集 测试集-****博客
  • 训练集、测试集、验证集之间的区别及理解_训练集验证集和测试集的区别-****博客

二、数据调整

images和labels文件夹下都新增train和val文件夹,分别代表训练集和验证集。

将图片一部分放到train,另一部分放到val中。images和labels中两个文件夹下的文件对应。比如01.jpg在images/train中,那么01.txt也应该在labels/train中。

三、模型训练

关键参数:

  • weights: 预训练的权重文件
  • data: 数据集描述文件
  1. 在yolov5-master下新建datasets文件夹,将images和labels放到这儿。修改data参数的数据集描述文件。找到data/coco128.yaml,复制粘贴该文件生成一个副本。在该文件下修改数据集描述。重命名为dvn.yaml【随意】
  2. names: 下是所有class类别。删除多余的类别,修改类名。path,train,val的路径也要修改。
  3. 运行train.py

我遇到了报错,已解决,问题如下:

遇到报错:ImportError: Bad git executable

解决方案:在train.py文件中的import os后面加上 os.environ["GIT_PYTHON_REFRESH"] = "quiet"

参考:

YOLOv5运行错误:ImportError: Failed to initialize: Bad git executable.-****博客

  1. 运行后,根据提示,找到runs/train/exp2文件夹,里面生成了很多文件。在weights文件夹下有best.pt和last.pt 这两个文件分别是,训练最好的模型和训练的最后一个模型;events.out文件存放了 tensorboard的日志。可以查看训练过程中各项指标的变化。
  2. 我们可以输入该命令,进入tensorboard: tensorboard --logdir runs,点击出现的Localhost链接。可查看tensorboard存放的日志
  3. 检测视频,设置参数:--weights指定权重文件,--source指定测试的资源,--view-img指定可视化。python detect.py --weights ./runs/train/exp2/weights/best.pt --source ./datasets/192.mp4 --view-img
  4. ctrl+c退出

上一篇:基于单片机的多种波形发生器设计-三、 软件设计


下一篇:记录一下做工厂的打印pdf程序