Pytorch1.0+CUDA10.0+cuDNN环境配置之谈(Win 10)

Pytorch1.0+CUDA10.0+cuDNN环境配置之谈(Win 10)

引言

在项目的过程中,经常需要复现大牛的代码。而很多代码是针对gpu而言的,所以还在cpu环境下跑代码的人们就会比较头痛。这个时候一般会有两种方法:第一种就是尝试将gpu版本的源代码修改成cpu版本。这种方法有时候很凑效,就像下面只需要简单的修改几行命令即可实现从gpu环境到cpu环境的跨越,或者只是将带有cudnn(gpu加速)的一些命令去掉即可:

import torch
from torch.autograd import Variable

# 将变量或者数据转移至GPU
gpu_info = Variable(torch.randn(3,3)).cuda()
# 将变量或者数据转移至CPU
cpu_info = gpu_info.cpu()

但是有很多时候,一些模块自带的命令只支持使用cudnn(见下图):

强行修改就会无情报错

这个时候修改成cpu环境可能就需要花很多的时间了,而且如果python功底不强并且对源代码没有足够的了解根本就改不动(这里指的功底在我看来一般都是计算机出身的大牛了),而且很大概率会改到最后得出一个结论:在这个项目里cpu版本和gpu版本不兼容!总而言之,一昧的想绕过gpu版本有时候真的是行不通的 (这里作为小白的我深有体会,改到最后才发现此路不通…当然这里的改动一般都指的是微改)。这个时候呢我们就只好踏踏实实的寻求配置gpu环境:即需要配置cuda和cuDNN。(所以才有了这篇文章, )


正题(环境配置)

环境

  • 电脑:联想小新Air 13 pro
  • CPU:i5 ,4G运行内存
  • 显卡:NVIDIA GeForce 940MX,2G显存
  • 系统:windows10 64位系统
  • 软件:Anaconda 5.3.0 python 3.6.6

一.使用Anaconda建立虚拟环境

为什么要使用Anaconda建立虚拟环境呢?是因为虚拟环境之间是独立开来的,假如你需要下载同一个模块的不同版本,这个时候就可以下载到不同的虚拟环境里面,例如主环境的python版本为3.6,你可以创建一个虚拟环境下载python3.5,这样是不会起冲突的(划重点:虚拟环境之间的python版本可以不同)。如果有一天你的虚拟环境被装得很乱的时候,可以直接将这个虚拟环境删除,这样是不会对主环境造成影响的,所以非常的方便。


1.首先在“运行栏”(键盘同时按win+R),框中输入字母:cmd 按回车键打开以下界面(我只是把cmd背景调成了白色,跟你们那个黑色的是一样的):

2.然后输入:

conda info –e 

显示截至目前你所安装的环境:

这里可以看到我已经安装了三个环境,如果你们还没安装过其他环境的这里只会显示“base”那一行,意味着主环境。


3.接着输入(创建虚拟环境)

conda create –name DL-gpu python=3.6 anaconda
这条命令的意思是创建一个名为“DL-gpu”(这里是可以根据你的习惯更改的),python版本为3.6的虚拟环境,添加“anaconda”会帮助用户在创建虚拟环境的同时下载一些常见的模块(如NumPy,Pandas)。

如果期间碰到出现:Proceed([y]/n)? 就输入y并按回车。


4.安装成功之后就可以输入:

activate DL-gpu

启动anaconda环境了(如果你换了虚拟环境名,就输入activate + 你的虚拟环境名字):

当命令提示符前面出现虚拟环境名字,就说明已经是在该虚拟环境下工作。

如果需要退出虚拟环境,则输入:

deactivate
回到主环境(base环境)


二.下载CUDA+cuDNN

Pytorch、TensorFlow等深度学习框架主要是通过NVIDIA提供的CUDA和cuDNN来存取GPU的,所以我们需要安装CUDA和cuDNN


1.首先确认显卡是否支持CUDA。

查看在菜单栏输入“系统信息”

打开之后找到“组件”“显示”就可以看到显卡名称

再从英伟达官网里面找到“CUDA-Enabled GeForce Products”寻找有没有自己对应的显卡型号,如果有才能下载。


2.安装CUDA

我下载的是CUDA10.0,如果想要下载其他版本可以参照Licko的深度好文

首先打开CUDA的下载链接,根据电脑的属性点击如下:

其中如果下载方式选择exe[network],安装的时候则需要连网(需要网络稳定)。如果选择exe[local],下载的时候则是把整个CUDA安装包下载到本地再进行安装。这里我选择第一种方式。
下载完之后打开:

点击ok,等检查系统兼容性之后页面如下:

接下来操作过程如下:点击“同意并继续”→许可协议选择“接受”→ 安装选项选择“精简(E)” →选项在I understand…那里打“√”→ 安装选择点击“下一步”即可。


3.安装cuDNN

打开cuDNN官网,点击“Download cuDNN”


接着加入会员并且登录下载即可,CUDA10.0对应的cuDNN版本我下载的是cuDNN7.4。

【划重点】如果嫌下载麻烦的可以到下面的网盘链接自取CUDA10和cuDNN7.4的压缩包文件,提取码是:wntr。如果失效的话就按上面的下载步骤到官网下载就好了。

https://pan.baidu.com/s/15BCjYV5jaiapNfJ9i9IgXApan.baidu.com


4.下载完之后将压缩包里面的文件夹“cuda”解压,文件夹里边有有一个“bin”文件,里面存有“cudnn64_5.dll”文件。


加入存有该文件的路径地址“D:\cuda&cuDnn\cuda\bin”到Path环境变量中。

首先在桌面右键点击“我的电脑”“属性”“高级系统设置”:


“环境变量”→双击“Path”“新建”→把存有“cudnn64_5.dll”文件的路径加上:


最后点击确定即可。

三.安装pytorch稳定版1.0


1.首先来到pytorch官网,滑到下面的安装选项里根据自己电脑环境点击:

就可以找到属于该环境的安装命令:

conda install pytorch torchvision cuda100 -c pytorch

这里我尝试过pip和conda下载,个人建议使用conda安装一步到位。如果出现Proceed([y]/n)? 就输入y并按回车。安装界面如下:

这里强烈建议到一个网络较稳定的地方下载!我一开始下载的地方因为网络不稳定,几次尝试使用pip和conda下载都报错,有一次下载到93%时报错,当移动到网络较稳定较快的地方之后使用conda下载终于成功。(这里我看了许多贴子,因为下载时间比较长,很多人下载过程中也经常报错,但几个下载源反复尝试一般就可以成功。)


2.最后安装完成后输入:

conda list
显示已安装模块

就可以找到pytorch模块了


3.同时我们可以在安装了pytorch的虚拟环境下输入:python 打开python,并运行:import torch 载入该模块(划重点:加载pytorch这里使用的是import torch 不是import pytorch)

如果没有报错就说明加载成功了。


4.接下来输入:

torch.cuda.is_available()
查看cuda是否可用

显示Ture就是大功告成了,就开始pytorch的gpu之旅了。


附加:上面所述的创建虚拟环境还可以使用以下途径:假如你有环境A,你只是需要尝试新建一个类似的虚拟环境B安装某一个模块,这个时候你就可以输入:

conda create -n B--clone A

去复制一个与环境A一样的虚拟环境B,再在环境B里下载你想要的模块。如果想要对虚拟环境进行重命名可以参照这里:(jianshu.com/p/7265011ba

总结:因为我的电脑是超极本,很薄所以总是感觉它很脆弱,对它倍加呵护,一些稍大的数据都不愿意在电脑上亲测(一旦把电脑跑崩了心态可能也就崩了,楼主比较玻璃心)。所以我觉得使用gpu环境运行代码也会对电脑比较损,找了很多资料,其中Licko的深度好文有个gpu笔记本的亲测,看完之后才放下了很多顾虑,大胆地把爪子伸向gpu的配置。但是大家在使用GPU的时候还是得对自己的电脑有所了解。

参考资料:

zhuanlan.zhihu.com/p/38

zhuanlan.zhihu.com/p/31

《Tensorflow+Keras深度学习人工智能实践应用》——林大贵

编辑于 2019-02-13

文章被以下专栏收录