在Win10上从零安装GPU加速版本的Pytorch
- 更新Nvidia驱动
- 安装CUDA
- 安装cuDNN
- 用pip安装torch
- 验证Pytorch是否安装成功
本文在参考另外两篇文章的基础上,汇总讲解了Windows10系统 Python如何从零开始安装可以使用GPU加速的Pytorch版本。
能够使用GPU加速的前提是电脑安装了Nvidia显卡,全部的安装包加起来大概4-5GB。
这篇文章参考了另外两篇文章,在此表示感谢。
Pytorch总体安装步骤: (下称“文章一”)
Pytorch中关于CUDA与cuDNN的详解: (“下称文章二”)
更新Nvidia驱动
首先需要更新Nvidia驱动。
由于查看本文的读者大部分都是第一次接触并且试图安装具备GPU加速的Pytorch,因此你们在此之前大概率不会关注自己电脑上Nvidia的驱动程序的版本。由于接下来将要安装的CUDA、cuDNN对N卡驱动有一定的要求,所以我推荐首先更新一下自己的驱动。
右键单击桌面 → NVIDIA控制面板 → 菜单栏帮助 → 系统信息,可以查看自己当前的显卡驱动版本。(参考文章一)
随后进入链接搜索最新驱动程序安装包:
https://www.nvidia.cn/Download/index.aspx?lang=cn 根据自己之前查到的显卡型号,填写进去即可。如果点击搜索没有搜到,那更改一下“下载类型”,重新搜索。
如果还是搜不到那就算了吧,跳过这一步进行下一个环节。
搜索到最新驱动版本后,如果有升级的话直接下载安装。
安装步骤略,一直点击“是/下一步”,一直到结束就行了。安装路径我选择的默认路径。
显卡驱动程序升级后,程序版本基本能满足最近的torch版本需求了。
安装CUDA
CUDA的安装版本的选择,请参考文章一。
CUDA的安装详细步骤,请参考文章二。
文章二中对CUDA安装的步骤解释十分详细,本文不再赘述,读者移步去看。但是读者需要留意一点:选择好安装包版本后,请记住所下载的CUDA的版本号,如下图红框框所示,本文以CUDA 10.1版本为例。
我关于增加系统环境变量的操作再补充一些细节。
下图是文章二给出的修改系统环境变量的示意图。
我根据作者的解释,进行的操作是:将下图中“1”处的所有系统变量的值都配置成下图“2”中的四个值。
在进行这个操作时,选择某个变量,点击编辑的时候,会出现下图的样子。
下图中,变量值的文本输入框只有一行,若想输入多个值(例如上图中“2”处要求输入4个数值),则不同数值之间用分号“;”分隔开即可。
当一个变量所对应的变量值有多个的时候,再次点击编辑就会出现下图的样子了。
添加完系统环境变量后,打开cmd分别输入 nvcc -V 、nvcc --version,可以检验CUDA是否安装顺利。(参考文章二)
安装cuDNN
根据文章二,进入cuDNN下载链接:
https://developer.nvidia.com/rdp/cudnn-archive 根据前面已经安装的CUDA的版本号,以及Windows10系统、Python,选择合适的cuDNN的版本。
网站中最新版本的cuDNN可能还不支持Win操作系统,所以点开链接后找不到cuDNN Library for Windows10 (x86)。那就下载支持Win10的最近的版本即可。
例如本文之前下载的是CUDA 10.1版本,则可以选择下图这个版本的cuDNN。
按照文章二的步骤完成cuDNN的安装即可。
用pip安装torch
由于文章一给出的链接里面,初学者难以分辨到底该下载哪个torch版本,所以本文推荐先去官网查询。
进入Pytorch官网查询需要安装的torch的版本:
https://pytorch.org/get-started/locally/
若官网给出的筛选类型正好符合自己所需要的,例如图中给出了 CUDA 10.2 版本对应的torch,则直接复制底下红框框中的一串字符,打开cmd,输入并回车即可。
若官网没有给出,例如本文安装的是 CUDA 10.1,则需要去历史版本中查询,链接:
https://pytorch.org/get-started/previous-versions/ 例如下图,找到了一个符合要求的torch版本。
复制这里面的代码,进入cmd,回车运行即可。
由于torch比较大,下载时间较长,安装时间较长,cmd长时间没反应的话请耐心等待,先不要急着怀疑pip卡死了。
验证Pytorch是否安装成功
参考文章一给出的验证代码:
// Pytorch Version Check
print("torch version {}".format(torch.__version__))
print("cuda is available: {}".format(torch.cuda.is_available()))
可以检验Pytorch是否完整安装成功。