熟悉了yolov5的CPU环境,下一步就是构建GPU环境了。从yolov2 tensorflow keras darknet,原始的GPU构建非常麻烦,不仅要cuda 和cudnn对应,还要和驱动版本完全一致,更要在windows环境设定大量环境变量和路径,这是非常不完美的解决方案。现在yolov5 pytorch已经不存在这个问题,可以说在激活环境下可以一键完成GPU环境的搭建。
首先要检查 自己的显卡支持的cuda版本,因为我现在笔记本做的测试,测试的显卡是MX230,莫笑,训练速度有显著提升的。
右击桌面 nvidia面板 查看cuda

现在我现实的是11.7,实际上我升级驱动之前是10.0.如果你想用支持的新的Cuda版本,请去nvidia 官网下载新的驱动,别担心这个驱动是向下兼容的,你只需安装 支持低于cuda11.7的pytorch,实际上我发这篇文章时,pytorch仅支持到11.3。
升级完驱动后,按照之前的步骤建立起一个隔离的环境,以后cuda cudnn等都在这个环境中运行,不用再去进行环境变量的修改了,我非常烦改环境变量的过程。

如果构建环境和建立独立文件夹部分还有问题,可以看第一篇 yolov5环境快速创建的文章
https://blog.csdn.net/buaaweibin/article/details/125356544?spm=1001.2014.3001.5502
下面打开pytorch网站

可以选择 11.0 版本,但是前面cpu测试的时候已经说过了11.0兼容性并不好,训练完成后会有路径错误提示。我建议选1.8.0版本,当然 9 10 版本可以也测试以下。
进入前面版本网页。
进入后可以看到,在线安装方法基本是两种方法
一种是 conda 一种是pip


conda 方法支持到 cuda 11.3 pip 支持到11.1 两种方法pytorch版本相同,对应的torchvision torchaudio的版本也略有不同。但是按照对应版本安装都是没有问题的。
开始使用了 conda 为了安装cuda 11.3
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge
结果安装到pytorch1.10时(或者其他版本)非常慢,需要约2个小时左右。
后面使用了pip版本
pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html
从pytorch 官网安装,速度非常快,2分钟装完,之后可能会提示有的依赖没有安装,没有关系我们可以先测试pytorch 和 GPU

让我非常震惊,gpu环境已经构建好了,其实在安装的时候就能发现,安装的版本 pytorch 是带有 cuda 和 cudnn的。
下面的套路和之前一样了,把yolov5-master解压(之前图已经解压了),然后当前目录安装依赖
pip install -r requirements.txt
安装完成后,环境就搭建好了,还是先测试coco128数据集训练情况,进入yolov5-master文件夹,执行
python train.py --img 640 --batch 16 --epochs 5 --data ./data/coco128.yaml --cfg ./models/yolov5s.yaml --weights yolov5s.pt
出现错误,页面文件太小

因为cpu训练时没有出现错误,可以联想到是由于GPU现存太小导致的,可以减小batch解决
python train.py --img 640 --batch 2 --epochs 5 --data ./data/coco128.yaml --cfg ./models/yolov5s.yaml --weights yolov5s.pt
开始训练,正确识别GPU

训练过程可以看到 gpu显存使用情况,监视cpu可以发现cpu占用非常低

同时速度增加了很多,总共只用了4分钟。CPU训练应该是20分钟以上。
使用低端显卡完成gpu构建我原来是不抱什么希望的,下面的研究将依赖 GTX1070 8G 和RTX2060s 8G显卡来完成,我们拭目以待。