个人打卡,慎看。
指路大佬:【手把手带你实战YOLOv5-入门篇】YOLOv5 模型训练_哔哩哔哩_bilibili
一、数据集
首先提到了两个概念,训练集和验证集。我机器学习0基础,于是查找了资料。
数据集一般分为三类:训练集、验证集和测试集。
- 训练集:训练模型, 用于模型拟合的数据样本。不能反映模型真实的能力。
- 验证集:模型训练过程中单独留出的样本集,需要选择超参数,可以评估不同超参数训练出的模型效果,优化模型。参与了 “人工调参” 的训练过程。
- 测试集:评估最终模型效果。
个人白话理解:训练集是普通数据;验证集是挑取一部分非训练集,人工为其添加参数,不断优化;测试集是测试包含所有数据的模型效果。
如果人工修改大部分数据的参数,速度会很慢,所以验证集只验证一部分数据,并不是所有的数据。所有数据会在测试集评定效果。
参考:
- 训练集、验证集、测试集以及交验验证的理解_训练集 验证集 测试集-****博客
- 训练集、测试集、验证集之间的区别及理解_训练集验证集和测试集的区别-****博客
二、数据调整
images和labels文件夹下都新增train和val文件夹,分别代表训练集和验证集。
将图片一部分放到train,另一部分放到val中。images和labels中两个文件夹下的文件对应。比如01.jpg在images/train中,那么01.txt也应该在labels/train中。
三、模型训练
关键参数:
- weights: 预训练的权重文件
- data: 数据集描述文件
- 在yolov5-master下新建datasets文件夹,将images和labels放到这儿。修改data参数的数据集描述文件。找到data/coco128.yaml,复制粘贴该文件生成一个副本。在该文件下修改数据集描述。重命名为dvn.yaml【随意】
- names: 下是所有class类别。删除多余的类别,修改类名。path,train,val的路径也要修改。
- 运行train.py
我遇到了报错,已解决,问题如下:
遇到报错:ImportError: Bad git executable
解决方案:在train.py文件中的import os后面加上 os.environ["GIT_PYTHON_REFRESH"] = "quiet"
参考:
YOLOv5运行错误:ImportError: Failed to initialize: Bad git executable.-****博客
- 运行后,根据提示,找到runs/train/exp2文件夹,里面生成了很多文件。在weights文件夹下有best.pt和last.pt 这两个文件分别是,训练最好的模型和训练的最后一个模型;events.out文件存放了 tensorboard的日志。可以查看训练过程中各项指标的变化。
- 我们可以输入该命令,进入tensorboard: tensorboard --logdir runs,点击出现的Localhost链接。可查看tensorboard存放的日志
- 检测视频,设置参数:--weights指定权重文件,--source指定测试的资源,--view-img指定可视化。python detect.py --weights ./runs/train/exp2/weights/best.pt --source ./datasets/192.mp4 --view-img
- ctrl+c退出