目录
本文链接:yolov7源代码:
百度网盘分享:百度网盘 请输入提取码
环境配置:YOLOv7保姆级教程(个人踩坑无数)----训练自己的数据集-CSDN博客
数据集准备:YOLOv7(目标检测)入门教程详解---检测,推理,训练-CSDN博客
yolov7论文解读:【YOLO系列】YOLOv7论文超详细解读(翻译 +学习笔记)-CSDN博客
模型部署:深度学习部署神器——triton inference server入门教程指北_triton调用深度学习模型服务端代码如何编写-CSDN博客
cuda历史版本下载:CUDA Toolkit Archive | NVIDIA Developer
cudnn历史版本下载:cuDNN 历史版本 | NVIDIA 开发者
pytorch历史版本指令:Previous PyTorch Versions | PyTorch
如果官网下载cuda和cudnn比较慢,可以从我的网盘下载。cuda是11.3版本,cudnn与之兼容。
通过百度网盘分享的文件:cuda11.3-cudnn8.2.1 链接:百度网盘 请输入提取码
0.引言
本人作为深度学习小白,初次配环境并训练自己的数据集,下面记录学习的全过程,帮助其他人少踩坑,也记录一下自己的学习过程。首先说明本文训练模型未修改模型,后期做出修改再看源代码,如果还不了解anaconda,cuda等内容,建议先去看一下基础用法。
大致流程:
下载源代码---配置环境---下载权重文件验证环境---构建自己的数据集---训练数据集---验证训练模型---评估训练效果
1.我的环境配置
使用anaconda来管理python环境,我的yolov7使用了python3.8.0版本,cuda11.3 , cudnn8.2.1版本。
运行requirements.txt文件下载环境所需文件。
pytorch相关内容和cuda,cudnn注意从官网下载,需要科学上网,如果选择cuda11.3可以使用上边的网盘下载。
下面是我的 conda list 可以对应参考:
2.项目结构介绍
首先从官网下载源代码解压后得到yolov7-main的文件夹。
我们需要创建两个文件夹,修改两个yaml文件。
从github下载预训练权重,建立文件夹weights,里面放上下载的权重文件,一来这个可以帮助我们测试自己的环境是否配好,二来可以帮助我们更好的训练自己的模型。
再建一个数据集文件夹dataset,下面一级是我们的数据集名字,自己命名即可(我是要检测猪头,所以命名为pighead)。再下面一级是images文件夹和labels文件夹,使用labelimg进行标注。
第一个yaml文件是data文件夹下面的coco.yaml文件,这个文件是和数据集相关的文件。
第二个yaml文件是cfg文件夹下面的training文件夹下的yolov7.yaml文件,这个文件是和训练相关的文件。
最后得到这样的文件夹结构:
3.数据集训练
上边的dataset文件夹弄好后,在pycharm终端里输入下面的指令即可运行训练,训练结束会新建一个文件夹runs,产生一个子文件夹train,里面的weights文件夹里的best.pt就是要训练出来的权重文件。
注意修改指令里的名字,指令代表的含义可以看train.py文件。
CPU版本
python train.py --weights weights/yolov7_training.pt --cfg cfg/training/yolov7-pig.yaml --data data/pigdata.yaml --device cpu --batch-size 1 --epoch 1
GPU版本(本人使用)
python train.py --weights weights/yolov7_training.pt --cfg cfg/training/yolov7-pig.yaml --data data/pigdata.yaml --device 0 --batch-size 5--epochs 400
训练过程:
4.训练模型检测
我的测试指令:
python detect.py --weights runs/train/exp/weights/best.pt --device 0 --save-txt --save-conf --project runs/detect --name exp
我的detect.py文件最下面的代码,加上了中文注释可以参考。注意如果测试出来没有txt文件,是因为置信度设置的太高了,减小一点置信度或者多训练几遍就好了。第一次测试时,我只迭代了一遍就想看一下结果,置信度却设置的很高,没有txt文件还以为出错了,降低一下置信度就好了。
5.感受
一开始对深度学习毫无头绪,可能真的没什么天赋,搭配环境就下载了好多好多次。数据集构建,训练测试,甚至pycharm,anaconda,cuda这些都出现过很多问题,这些软件卸了再安,安了再卸,cuda也始终用不了,pycharm无法识别conda环境等等,熬了很久才一点点改好训练了自己的第一个数据集,看见真正能用,能测试出想要的结果还是很高兴的。“报错越多,学习越多,刚学习不要怕报错”。过了这个暑假,大一就要结束,在此也勉励我们能够继续前行。