作者:prince小乀朱 | 来源:互联网 | 2023-09-10 13:18
引言在项目的过程中,经常需要复现大牛的代码。而很多代码是针对gpu而言的,所以还在cpu环境下跑代码的人们就会比较头痛。这个时候一般会有两种方法:第一种就是尝试将gpu版本的源代码
引言
在项目的过程中,经常需要复现大牛的代码。而很多代码是针对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/15BCjYV5jaiapNfJ9i9IgXA pan.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里下载你想要的模块。如果想要对虚拟环境进行重命名可以参照这里:(https://www.jianshu.com/p/7265011ba3f2)
总结:因为我的电脑是超极本,很薄所以总是感觉它很脆弱,对它倍加呵护,一些稍大的数据都不愿意在电脑上亲测(一旦把电脑跑崩了心态可能也就崩了,楼主比较玻璃心)。所以我觉得使用gpu环境运行代码也会对电脑比较损,找了很多资料,其中【Licko的深度好文】有个gpu笔记本的亲测,看完之后才放下了很多顾虑,大胆地把爪子伸向gpu的配置。但是大家在使用GPU的时候还是得对自己的电脑有所了解。
参考资料:
https://zhuanlan.zhihu.com/p/38223869
https://zhuanlan.zhihu.com/p/31430631
《Tensorflow+Keras深度学习人工智能实践应用》——林大贵