笔记目录
一.yolov5配置(GPU)
我的电脑配置 cuda 10.0
打开CMD,输入nvcc --version
1. 复制配好的cpu环境
找到anaconda的envs文件夹里的yolov5文件夹(昨天配置好的cpu环境)复制粘贴到envs文件夹里并改名为yolov5GPU
2. 下载GPU版本的pytorch和pytorchvision
打开pytorch官网https://pytorch.org/get-started/locally/
查看需要安的软件包版本
打开https://download.pytorch.org/whl/torch_stable.html
下载所需的软件包(从pytorch官网下载太慢)
由于我的是cuda10.0我安的软件包是:torchvision-0.7.0+cu101-cp38-cp38-win_amd64.whl
和torch-1.6.0+cu101-cp38-cp38-win_amd64.whl
下完之后发现只有跑yolov5s.pt模型没有问题但是跑yolov5x.pt会出现问题(具体问题见bug里的描述),于是我下载了
torchvision-0.8.2+cu101-cp38-cp38-win_amd64.whl
torchaudio-0.7.2-cp38-none-win_amd64.whl
torch-1.7.1+cu101-cp38-cp38-win_amd64.whl
将原来cpu安装的torch和torchvision卸载
pip uninstall torch
pip uninstall torchvision
安装gpu版的torch等一系列包
pip install torchvision-0.8.2+cu101-cp38-cp38-win_amd64.whl
pip install torchaudio-0.7.2-cp38-none-win_amd64.whl
pip install torch-1.7.1+cu101-cp38-cp38-win_amd64.whl
(参考资料:1.https://www.bilibili.com/video/BV1FK411K78w?from=search&seid=354142551239432005
2.https://blog.csdn.net/water19111213/article/details/104352503
3.https://www.dtmao.cc/news_show_576859.shtml)
3.测试pytorch和torchvision是否安装正确
import torch
flag = torch.cuda.is_available()
print(flag)
ngpu= 1
# Decide which device we want to run on
```javascript
device = torch.device("cuda:0" if (torch.cuda.is_available() and ngpu > 0) else "cpu")
print(device)
print(torch.cuda.get_device_name(0))
print(torch.rand(3,3).cuda())
二.yolov5测试
在官网下载yolov5代码以及模型(.pt文件)https://github.com/ultralytics/yolov5
打开yolov5文件夹输入
python detect.py --source 0 --weight E:\chengxu\yolov5\weights\yolov5s.pt
python detect.py --source 0 --weight E:\chengxu\yolov5\weights\yolov5x.pt
三.bug及解决方法
1.pycocotools安装报错
解决方法: 复制cpu环境下载gpu版本的pytorch
2.pytorch和torchvision版本报错
pkg_resources.VersionConflict:
(torchvision 0.7.0+cu101 (e:\anaconda\anaconda\envs\yolov5gpu\
lib\site-packages), Requirement.parse('torchvision>=0.8.1'))
解决方法: 更改yolov5文件夹里的requirements.txt文件,将torch>=1.7.0和torchvision>=0.8.1注释掉
#torch>=1.7.0
#torchvision>=0.8.1
3.pytorch版本和yolov5不兼容
问题描述:
(yolov5GPU) E:\chengxu\fadinglight-yolov5-master\yolov5>python detect.py --source 0 --weight E:\chengxu\fadinglight-yolov5-master\yolov5\weights\yolov5x.pt
Namespace(agnostic_nms=False, augment=False, classes=None, conf_thres=0.25, device='', exist_ok=False, img_size=640, iou_thres=0.45, name='exp', project='runs/detect', save_conf=False, save_txt=False, source='0', update=False, view_img=False, weights=['E:\\chengxu\\fadinglight-yolov5-master\\yolov5\\weights\\yolov5x.pt'])
YOLOv5 torch 1.6.0+cu101 CUDA:0 (GeForce GTX 1650, 4096.0MB)
Traceback (most recent call last):
File "detect.py", line 175, in <module>
detect()
File "detect.py", line 33, in detect
model = attempt_load(weights, map_location=device) # load FP32 model
File "E:\chengxu\fadinglight-yolov5-master\yolov5\models\experimental.py", line 118, in attempt_load
ckpt = torch.load(w, map_location=map_location) # load
File "E:\anaconda\anaconda\envs\yolov5GPU\lib\site-packages\torch\serialization.py", line 584, in load
return _load(opened_zipfile, map_location, pickle_module, **pickle_load_args)
File "E:\anaconda\anaconda\envs\yolov5GPU\lib\site-packages\torch\serialization.py", line 842, in _load
result = unpickler.load()
AttributeError: Can't get attribute 'SiLU' on <module 'torch.nn.modules.activation' from 'E:\\anaconda\\anaconda\\envs\\yolov5GPU\\lib\\site-packages\\torch\\nn\\modules\\activation.py'>
解决方法: 安装 torch==1.7.1+cu101 torchvision==0.8.2+cu101 torchaudio===0.7.2
(原来的是torch==1.6.0+cu101 torchvision==0.7.0+cu101
没有安装torchaudio)
学习时间
2021.3.12