目录
一、环境配置Pytorch+CUDA+cuDNN
1. 安装CUDA和cuDNN
1.1 查看显卡驱动对应的CUDA版本
1.2 CUDA和cuDNN的安装与验证
2. 在虚拟环境中安装pytorch
2.1 创建虚拟环境
2.2在虚拟环境中安装pytorch
二、Yolov5源码测试
1. 下载源码并安装依赖项:
2. 测试
YOLO的环境配置真的异常繁琐,刚上大学那会儿很多次想学各种深度学习,几乎每一次都倒在环境配置上。
建议在把显卡驱动更新到最新。
好用的显卡真的非常重要!GTX850M和RTX3080比起来真的天壤之别。
要安装现版本yolov5就要安装对应的版本的pytorch(我记得是1.9版本以上),而该版本的pytroch对应的CUDA(我记得好像的11.1)对应的显卡驱动相当新,几乎无法避免地要更新显卡驱动(甚至换一张好的显卡!)
右击桌面可以查看英伟达驱动设置-》帮助-》组件可以查看当前显卡驱动对应的CUDA版本,安装的CUDA版本不能高于显示版本。
确定好CUDA版本后查找对应的cuDNN版本。
网页打开特别慢,同时也不建议使用镜像下载,所以大家可以直接查看对应版本在网络上自行搜索下载。CUDA下载后是安装包,cuDNN是文件,分别安装完毕后复制cuDNN的bin,include,lib到CUDA的同名文件夹。
环境变量生效后win+r+cmd输入:
nvcc -V
注意!!!这里的V是大写!!!
若能:
则CUDA已经顺利安装!
在CUDA文件夹下的\extras\demo_suite文件夹shift+右键打开PowerShell,执行.\bandwidthTest.exe,若显示CUDA在N卡上运行则cuDNN也同样安装成功!
考虑到纷繁复杂的环境配置,强烈建议在anaconda的虚拟环境中安装pytorch避免损坏其他环境。
在命令提示符中键入:
conda create -n name python=3.8 anaconda
name是环境名称,python=3.8是要在虚拟环境中使用的python版本
启动虚拟环境:
activate name
关闭虚拟环境:
deactivate
查看anaconda中的虚拟环境:
conda info --e
带*号的是当前正在运行的虚拟环境。
pytorch官网提供的版本有限,pip下载超慢非常容易出错,强烈建议在这里搜索对应的pytorch版本下载
一定要注意对应的CUDA和python版本,同时建议下载1.9以上版本避免YOLO和部分python包不支持。
cu对应CUDA版本,cp对应python版本下载完成后进入虚拟环境pip install安装.whl文件
验证pytorch是否安装成功:
import torch as t
t.__version__
若返回:
则安装成功。注意!成功安装之后的返回值一定包括CUDA版本,若返回值不包括cu或者显示的是cpu(特别是在反复安装之后)则表示torch或CUDA的版本装错了,要重新检查一遍!
源码下载地址
源码根目录下有一个requirement.txt的文件夹,在项目根目录打开命令提示符,用pip install -r安装其中的依赖项。
这里我碰到了一个很离谱的错误:UnicodeDecodeError: ‘gbk’ codec can’t decode byte
一开始以为是python解析有问题,修改了UTF编码,文件路径也不包含中文,但依然报错,最后解决方法:
win-》设置-》时间和语言-》语言-》管理语言设置-》更改系统区域设置
重启电脑-》运行cmd键入:
chcp 65001
才解决了pip报错的问题(而我不知道问什么……)
安装完依赖项之后下载权重文件(这里也可以不用预先下载,在测试时若yolo没有识别到权重文件,会自动进行下载)
新版的yolov5不再在根目录下附带权重文件夹了,下载后的.pt文件可以直接放在项目根目录下。
在根目录下激活虚拟环境,键入:
python detect.py --source ./data/images/ --weights ./yolov5s.pt --conf 0.4
开始利用预先下好的(这里是yolov5s)进行测试
然后打开runs-》detect-》exp,出现这两张经典图像:
也可以将自己的图片或视频放入data下文件夹中,修改上述命令能得到对应的测试结果:
到这里使用yolov5的所有前期准备工作就全部完成了~