YOLOv5 - Win10 + RTX3070 的 PyTorch 安装指南(ASUS 天选 air)

本文档详细记录了在Win10系统、配备RTX3070显卡的ASUS天选air笔记本上安装YOLOv5的全过程,包括选择软件版本、安装CUDA 11.2、cuDNN 8.1.0、VS2017、Anaconda、PyTorch和YOLOv5,以及进行性能测试。测试结果显示,YOLOv5在RTX3070上运行正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言

1. 选取合适的软件及版本

2. 安装VS2017

3. 安装CUDA

4. 安装设置 Anaconda

5. 安装PyTorch

6. 安装YOLOv5

7. 测试YOLOv5

小结


前言

华硕推出了RTX3070的天选系列,好不容易抢了台ASUS 天选air,就想试试RTX3070的AI性能怎么样,这货有5120个CUDA核心,8GB GDDR6显存,应该比较牛吧!

YOLOv5最近也比较火,就拿它来试试。正好整理一下相关的软件,附上链接。

1. 选取合适的软件及版本

YOLOv5 需要安装PyTorch,登录PyTorch的网站,找到最新的稳定版本为1.7.1,目前为止,支持的最高的CUDA版本为11.0。

图1

我安装在windows系统,采用Conda安装,选择Python 3.8,RTX3070是Ampere构架,支持的最低的CUDA版本为11.0(大家可以关注一下,随着厂家的后续更新,可以选择支持的最新版本)。

图1

注意:我开始选择的是CUDA Toolkit 11.0 Update1 (Aug 2020),发现不能正确识别RTX3070。

后来重新安装CUDA Toolkit 11.2,就可以正确识别RTX3070了,看来CUDA的小版本对PyTorch的影响不是太大,不是必须安装CUDA 11.0版本。 

选择对应的cuDNN 8.1.0,CUDA Driver Version应该是最低要求,我安装了最新的 r461。

仔细研究发现,RTX3070的计算能力是8.6,11.0的CUDA里面没有RTX30xx的信息,11.2的CUDA里面有RTX30xx的信息:{0x86,"Ampere"}。

C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.2\common\inc\helper_cuda.h

CUDA需要有一个Compiler,VS2017/VS2019都支持。我选的是Visual Studio Community 2017 社区版(免费版)

图1

Note: There's a compilation issue in several Visual Studio 2019 versions since 16.7.1, so please make sure your Visual Studio 2019 version is not in 16.7.1 ~ 16.7.5

 

2. 安装VS2017

下载并安装Visual Studio Community 2017 社区版(免费版), 只选择 “使用C++的桌面开发” 就可以了。

图2

 

3. 安装CUDA

下载并安装CUDA Toolkit 11.2,这一步没有太多需要说明的。

如果你使用老一点的Nvidia显卡,你也可以试试CUDA Toolkit 11.0 Update1 和 CUDA Toolkit 11.0 Downloads(注意:这两个版本不能识别RTX3060~RTX3090这些显卡)

下载并安装cuDNN8.1.0, 这个需要一个开发者账号,并做一些调查问卷。将下载的文件解压到CUDA的相应目录里就可以了。

更新RTX3070显卡的驱动程序,目前最新的版本是:461.40-notebook-win10-64bit-international-nsd-dch-whql.exe

编译CUDA带的例子,看看能不能识别显卡:

C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.2\bin\win64\Release>deviceQuery.exe
deviceQuery.exe Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce RTX 3070 Laptop GPU"
  CUDA Driver Version / Runtime Version          11.2 / 11.2
  CUDA Capability Major/Minor version number:    8.6
  Total amount of global memory:                 8192 MBytes (8589934592 bytes)
  (40) Multiprocessors, (128) CUDA Cores/MP:     5120 CUDA Cores
  GPU Max Clock rate:                            1290 MHz (1.29 GHz)
  Memory Clock rate:                             6001 Mhz
  Memory Bus Width:                              256-bit

  L2 Cache Size:                                 4194304 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
  Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total shared memory per multiprocessor:        102400 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  1536
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 5 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  CUDA Device Driver Mode (TCC or WDDM):         WDDM (Windows Display Driver Model)
  Device supports Unified Addressing (UVA):      Yes
  Device supports Managed Memory:                Yes
  Device supports Compute Preemption:            Yes
  Supports Cooperative Kernel Launch:            Yes
  Supports MultiDevice Co-op Kernel Launch:      No
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 11.2, CUDA Runtime Version = 11.2, NumDevs = 1
Result = PASS

4. 安装设置 Anaconda

选择适合Windows和Python 3.8的版本:64-Bit Graphical Installer (457 MB),按照提示安装即可。

设置conda的清华源,在cmd的命令行里运行:

 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud//pytorch/

 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

 conda config --set show_channel_urls yes

 

5. 安装PyTorch

打开Anaconda Prompt的命令行,创建yolov5,输入:

conda create -n yolov5 python=3.8 

conda activate yolov5

安装pytorch及相应的软件包:

conda install pytorch torchvision torchaudio cudatoolkit=11.0 -c pytorch

 

6. 安装YOLOv5

获取YOLOv5的项目文件:

git clone https://github.com/ultralytics/yolov5.git

安装YOLOv5的依赖软件(使用清华源):

pip install -U -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple


7. 测试YOLOv5

获取YOLOv5的weights文件:yolov5s.pt  yolov5m.pt,运行:

(yolov5) C:\yolo\yolov5>python detect.py --source data/images --weights weights/yolov5s.pt --conf 0.25
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='data/images', update=False, view_img=False, weights=['weights/yolov5s.pt'])
YOLOv5  torch 1.7.1 CUDA:0 (GeForce RTX 3070 Laptop GPU, 8192.0MB)

Fusing layers...
Model Summary: 224 layers, 7266973 parameters, 0 gradients, 17.0 GFLOPS
image 1/3 C:\yolo\yolov5\data\images\bus.jpg: 640x480 4 persons, 1 bus, Done. (0.016s)
image 2/3 C:\yolo\yolov5\data\images\gj.jpg: 480x640 Done. (0.016s)
image 3/3 C:\yolo\yolov5\data\images\zidane.jpg: 384x640 2 persons, 1 tie, Done. (0.016s)
Results saved to runs\detect\exp49
Done. (0.239s)

(yolov5) C:\yolo\yolov5>python detect.py --source data/images --weights weights/yolov5m.pt --conf 0.25
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='data/images', update=False, view_img=False, weights=['weights/yolov5m.pt'])
YOLOv5  torch 1.7.1 CUDA:0 (GeForce RTX 3070 Laptop GPU, 8192.0MB)

Fusing layers...
Model Summary: 308 layers, 21356877 parameters, 0 gradients, 51.3 GFLOPS
image 1/3 C:\yolo\yolov5\data\images\bus.jpg: 640x480 4 persons, 1 bus, Done. (0.018s)
image 2/3 C:\yolo\yolov5\data\images\gj.jpg: 480x640 Done. (0.016s)
image 3/3 C:\yolo\yolov5\data\images\zidane.jpg: 384x640 2 persons, 1 tie, Done. (0.016s)
Results saved to runs\detect\exp50
Done. (0.241s)

 采用USB摄像头来测试一下:

(yolov5) C:\yolo\yolov5>python detect.py --source 0 --weights weights/yolov5s.pt --conf 0.25
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=['weights/yolov5s.pt'])
YOLOv5  torch 1.7.1 CUDA:0 (GeForce RTX 3070 Laptop GPU, 8192.0MB)

Fusing layers...
Model Summary: 224 layers, 7266973 parameters, 0 gradients, 17.0 GFLOPS
1/1: 0...  success (640x480 at 30.00 FPS).

0: 480x640 1 person, Done. (0.371s)
0: 480x640 1 person, Done. (0.000s)
0: 480x640 1 person, Done. (0.000s)
0: 480x640 1 person, Done. (0.006s)
0: 480x640 1 person, Done. (0.000s)

(yolov5) C:\yolo\yolov5>python detect.py --source 0 --weights weights/yolov5m.pt --conf 0.25
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=['weights/yolov5m.pt'])
YOLOv5  torch 1.7.1 CUDA:0 (GeForce RTX 3070 Laptop GPU, 8192.0MB)

Fusing layers...
Model Summary: 308 layers, 21356877 parameters, 0 gradients, 51.3 GFLOPS
1/1: 0...  success (640x480 at 30.00 FPS).

0: 480x640 1 person, Done. (0.875s)
0: 480x640 1 person, Done. (0.000s)
0: 480x640 1 person, Done. (0.011s)
0: 480x640 1 person, Done. (0.000s)                                                                                                                                                                                                      

小结

安装设置完成,也能够跑起来了。第一次初始化花的时间比较长,后续每次执行的时间都不尽相同,而且不同weights文件yolov5s.pt  yolov5m.pt 的计算结果也差别也不与计算量一致,说明单个图片做检测的计算量在这个测试里不是主要因素,下一次做大量运算再试一试。

                                                                                                                                 老徐 2021/2/21

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值