yolov5(GPU)配置


一.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.whltorch-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


猜你喜欢

转载自blog.csdn.net/qq_44181970/article/details/114703309