今天弄了整整半天的gpu+pytorch的配置,看了无数的教程,踩了无数的坑,终于自己摸索出一套cuda/gpu+pytorch的方法,绝对有效!

本贴针对win10

pytorch没有gpu占用率_gpu


真正从零搭建!

解决所有下载网速慢,找不到包等的一切不爽的问题!!

废话不表,直接上教程!(括号里会列出一些遇到的坑,可跳过)


一、 安装软件:

第一步首先安装cudacudatoolkit(当然你现在有anaconda也没关系,但是要注意一点,后面会提)【cuda是运行在nvidia的gpu上的针对并行计算的平台,极大加速深度学习运算;而cudatoolkit是针对此平台的工具包(链),没有它不行】。cudatoolkit也是cuda的驱动

网址:https://developer.nvidia.com/cuda-downloads 安装版本慎重选择

怎么知道自己当前装什么版本呢?

打开 控制面板->NVIDIA控制面板->帮助->系统信息->组件->NVCUDA.DLL 一栏后面的数字,我是9.2.189,是CUDA的驱动号。

pytorch没有gpu占用率_深度学习_02


根据需要在上述网址上选择对应的cudatoolkit下载。这里还是下载9.2的版本。如果想升级驱动,可以选择更高的版本。

pytorch没有gpu占用率_深度学习_03


选local。

pytorch没有gpu占用率_pytorch没有gpu占用率_04


下载完得到一个exe,运行。

pytorch没有gpu占用率_深度学习_05


pytorch没有gpu占用率_pytorch没有gpu占用率_06


这个是临时的,存在哪都没关系。

pytorch没有gpu占用率_gpu_07


根据自身需要选择安装方式。(网上其他教程大多推荐自定义安装,但其实还要配路径选择安装的文件,而精简其实就是全部安装的意思,自动安装在c盘。由于我有vs2017,选择精简也无所谓。我选的是精简。如果你没有vs,那就选自定义。记住你的自己选的文件夹!!)

中间可能有些“脚本错误”,还会跳出个日语提示界面(貌似说的是页面空白)??统统选是,继续运行就好了。

安装完成后(有些人还配完路径后),如何检验自己装上了呢?打开命令行,输入

nvcc -V

出现

pytorch没有gpu占用率_nvidia_08


版权以及版本提示信息,就算好了。

还有一个重要的步骤!以防忘记,提前设置。同样在NVIDIA控制面板,首选图形处理器,本来是“自动选择”改为“高性能NVIDIA处理器”。否则最后可能会报错。

pytorch没有gpu占用率_pytorch没有gpu占用率_09


至此,第一步 完成!第二步,安装cudnn【这是运算神经网络的工具,也不可或缺】。

网址:https://developer.nvidia.com/rdp/form/cudnn-download-survey 要注册什么的,然后挑与自己电脑型号和cudatoolkit匹配的cudnn下载!(据说也有右键复制链接地址下载的,但我试了,显示服务器无权下载什么的,失败了。注册一下问题也不大。)

下载解压完,是这样的:

pytorch没有gpu占用率_cuda_10


把里面所有文件复制(可以不复制那个txt),粘贴到原来你安装cudatoolkit的文件夹内,进行内容补充。

如果是默认路径:

pytorch没有gpu占用率_pytorch没有gpu占用率_11


里面的文件夹会被更新。

同样,如何测试是否安装成功呢?

选择里面extras文件夹,进demo_suite,在命令行下运行这两个程序:

pytorch没有gpu占用率_pytorch没有gpu占用率_12


若两个都返回result=pass,说明安装成功!

pytorch没有gpu占用率_pytorch没有gpu占用率_13


pytorch没有gpu占用率_cuda_14

现在 第二步 完成!

第三步:安装 anaconda。有些人会觉得奇怪,为什么这里才安装anaconda呢?原来就安装着不行吗?解释一下,这就是我的血泪史。
在安装pytorch前,我已经安装过tensorflow的gpu版本,如果tensorflow-gpu是最新版的话,安装过程中会自动下载cudatoolkit的高版本,如10.0+版本,而我的显卡是带不动这个的。我寻求降版本,但失败了,会一直加载不出来。这也就引发我寻求另一种方式下载pytorch。
但如果你目前没有装过cudatoolkit,或你的cudatoolkit版本和你的gpu版本对的上的话,就没事了(通过conda list检查)。否则,请 卸载或者用conda 重新建一个环境,不包含cudatoolkit!后面我还会讲怎么装的。
anaconda的安装就不说了,就普通安装。注意添加清华源,添加系统/用户路径。
【可选】安装完后看看conda是不是最新版,不是的话升级一下,在命令行输入

conda update conda

当然不更新也没事,反正我是更新了。这一步做不做问题应该不大。

第三步 完成!
至此,准备工作都已完成,下面安装包pytorch,torchvision,cuda92。

二、安装包:

结论先行,理由在后

【结论】

https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/ 下载你所需要的两/三个.tar.bz2压缩包。如果cuda是以下五个版本之一,则需要下载下列对应的压缩包。如果是10.0以上的,则不需要。

pytorch没有gpu占用率_cuda_15



pytorch没有gpu占用率_深度学习_16



pytorch没有gpu占用率_深度学习_17


第一个cuda,根据数字选版本。比如9.2就是cuda92,10.0就是cuda100.

第二个选pytorch的版本,注意有“cpu”字样的都不要下(你是去配gpu的)!根据自己的python版本和cuda版本下。cuda80,90,91,100的版本在前面,当然pytorch的版本就没这么高了。

pytorch没有gpu占用率_nvidia_18


第三个选torchvision的版本(如果你需要torchvision的话)。注意和pytorch的版本搭配!比如torchvision0.5.0必须有pytorch1.4.0,否则是装不上的。其余同理。下载完三个压缩包后,直接用conda安装!!(我本来对.tar.bz2格式的文件摸不着头脑,看了一篇教程才知道可以直接安装)

pytorch没有gpu占用率_nvidia_19


命令行输入:

conda install <你的.tar.bz2的绝对路径>

如(保险起见,按以下顺序):

conda install --use-local F:\Software\cuda92-1.0-0.tar.bz2
conda install --use-local F:\Software\pytorch-1.4.0-py3.7_cuda92_cudnn7_0.tar.bz2
conda install --use-local F:\Software\torchvision-0.5.0-py37_cu92.tar.bz2

安装成功后提示类似如下:

pytorch没有gpu占用率_nvidia_20


命令行输入python,回车,进入python,运行一下程序:

import torch
import torchvision
torch.cuda.is_available()

如果只返回一个True,那么就成功了!
如果有错误
from typing_extensions import Final
ModuleNotFoundError: No module named ‘typing_extensions’
说明没有typing_extensions的包。安装此包

pip install typing_extensions

还可以试试

x=torch.rand(3,2)
y=torch.ones(3,2)
x=x.cuda()
y=y.cuda()
print(x+y)

于是就出现了文章开头程序运行的一幕。最后一行多出来的cuda:0表明这个结果储存在GPU上。

至此,所有安装和配置完毕,你可以尽情用gpu进行深度学习了!


【理由】接下来是理由部分,详述坑。

很多教程都是去官网上下载pytorch、torchvision。然而即使你删去命令后面的 -c pytorch -c default -c numba/label/dev,即使你加了清华源,依旧会得到找不到包的错误。我猜是目前对cudatoolkit9.2支持不够友好了。包括如果你打算在anaconda navigator 里面安装cudatoolkit,你会发现后面的版本看似是9,安装完其实是10.2+,吐血(别问我怎么知道的,这就是坑!)。

pytorch没有gpu占用率_nvidia_21


pytorch没有gpu占用率_nvidia_22


pytorch没有gpu占用率_cuda_23


当然,你可以用anaconda search cudatoolkit去找包下载,但是你会发现在你要下载某一个包的时候,channel仍是外网,不是清华源。那速度,谁用谁酸爽……同样,你要是嫌麻烦也可以直接一条语句

conda install pytorch torchvision cudatoolkit=9.2 -c pytorch -c defaults -c numba/label/dev 来安装。当然这里轻松了,你就要做好下载个一年半载的准备,并且中途极有可能直接卡住,超时请求失效(亲测挂vpn外网也不行)。

以上的步骤都是针对cuda驱动9.2来进行的,感觉确实不怎么友好。不知道10.1会怎样,或许可以直接一条语句在清华源上安装,但我这方法一定还是有效的。