win7 64位系统 安装深度学习环境(anaconda、cuda、cudnn、theano、keras等)

win7 64位系统 安装深度学习环境(anaconda、cuda、cudnn、theano、keras等)

前言

安装深度学习套装本身就是个麻烦事,在windows上安装就又增加了难度系数,因为很多深度学习的扩展包最开始不是针对windows开发的,而我用windows安装的原因也只是因为我现在的项目里需要用到windows比较多,嫌切换麻烦,以后肯定会再安装Linux版本,这里把安装过程出现的问题及解决办法写下来,供大家参考,我的系统是win7 64位,显卡是GTX 960M(笔记本),安装基于gpu的深度学习环境。

1.安装

1、安装Anaconda

基于gpu的深度学习套装有很多,很多可以平行安装,但是既然在windows学习深度学习,python是离不开的,所以这里啥也别说,先把Anaconda安装上吧,Anaconda自带python,如果是初学者,推荐安装带python3.6版本的,去官网下载,速度不差,地址在这:https://www.anaconda.com/download/
选那个windows的即可,默认安装,安装完成后会安装上几个东西:anaconda navigator、anaconda prompt、jupter notebook、spyder等,anaconda navigator可以管理安装环境等,和anaconda prompt有很多功能重合,只不过一个是界面一个是代码,这里我们用anaconda prompt功能更全面。

2、安装visual studio 2010

这里安装vs是因为调用gpu计算需要c++编译,我选择了vs2010,因为我电脑本来就安装了2010,也可以安装其他更新的版本,如果不喜欢破解,可以选择community版本,也可以用的,打开安装包开始安装的时候不要选择那个更新选项(好像是第一个复选框),不然下载个没完还有可能下载不下来,对于深度学习环境选个vc++就够了,这里不再赘述。

3、安装cuda

这里终于快开始进入正题,cuda相当于一个驱动,里面也包含了显卡驱动及深度学习计算驱动,也就是说你安装了这个驱动,计算的时候才能调用显卡来计算,因为深度学习很多都是矩阵计算,而显卡又非常善于干这活儿,所以用显卡来干这活儿效率提升蹭蹭的。
回到正题,cuda的版本官网有很多,眼花缭乱怎么选?我一开始也想选个新的,但装了好几个才成功,有的是因为显卡驱动不兼容我的显卡,有的因为不兼容其他计算包,我就出现这么一个奇怪事情,在安装上cuda8.0时搞半天也调用不了gpu,报错pygpu initial fail,找半天发现设备管理器里显卡都没了,是直接消失了,也不显示黄色感叹号,所以只好乖乖换别的cuda版本,最终选择了cuda7.5,这里还有个很烦的事情,是安装7.5的时候因为之前有8.0版本,卸载后也死活安装不上,最后按照网上说法,把c盘的安装文件夹下与NVIDIA有关的文件夹全部删除,删除不掉的用安全管家强制删除,才安装上7.5,然后可以测试一下,打开cmd,输入vncc -V,如果能有那么一串英文说明,则说明安装成功了。
光安装成功还不行,还要能和vc++配合,这时候,打开C:\ProgramData\NVIDIA Corporation\CUDA Samples\v7.5(按照个人实际情况),打开Samples_vs2010.sln,如果你安装了vs2010是可以直接双击打开的,然后右键点击解决方案Samples_vs2010(145个项目),选择重新生成解决方案,然后等它运行,要好大一会儿,如果发现有失败的,则要根据实际情况修改,我这里提醒了缺少几个dll,按照网上说的,下载了DSXDK_Jun.exe,安装上再重新生成就全部成功了。

4、安装cudnn

cudnn是用于深度神经网络的GPU加速库,反正就是安装了就运行更快了的意思,那就安呗,说是安装,其实在windows上就是把文件拷贝到相应文件夹下就完了,要注意是拷贝文件不是拷贝文件夹,也就是说把解压出的文件夹bin下的cudnn64_6.dll(这个我用的与cuda7.0对应的cudnn6.0,所以名字带6)复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin里面,其他两个文件也是同样操作,这样就完成了。

5、安装mingw、theano

theano是。。。(网上有具体解释),mingw是theano的编译依赖,这里也不废话,直接在anaconda中安装,打开anaconda prompt,首先安装mingw,输入conda install mingw,然后等待,然后选择y,等待安装完成,然后安装theano,输入conda install theano,然后等待,然后选择y,不一会儿就安装完了,但是安装完不代表就能调用,要想正确调用还有不少工作,首先是在C:\Users\用户名 文件夹下要建立一个名字为.theanorc的txt文件,这个是theano的配置文件,文件内的内容我是这样的:

[global]
openmp=False
device = cuda
floatX = float32
root=C:\ProgramData\NVIDIA GPU Computing Toolkit\v7.5
base_compiler = D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
allow_input_downcast=True

[lib]
cnmem = 0.75

[blas]
ldflags=-lblas

[gcc]
cxxflags=-IC:\ProgramData\Anaconda3\MinGW\x86_64-w64-mingw32\include

[nvcc]
flags = -LC:\ProgramData\Anaconda3\libs
compiler_bindir = D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
fastmath = True

这里面有几个注意点,一是device = cuda,这个官网已经改了,不再是device = gpu,这个有可能会导致错误,也可能没事,二是ldflags=-lblas,这个很多赋值是空,我给这个值是因为我出现了blas错误,如果不出现blas问题可以赋值空。
这时候在anaconda prompt中输入python,进入python环境,然后import theano试试,如果有错就还要做相应修改。没错的话再输入theano.test()运行测试,看会不会出错,一般都是缺少一些安装包,像我这里就缺少了parameterized模块,这时候就要再安装parameterized,注意安装模块要退出python环境,我是直接关闭了anaconda prompt又重新打开,前缀带(base)说明是在基环境,可以安装模块了,如果缺少其他模块也从这安装。
安装好也测试没有错误后,就要测试theano调用gpu是否有效了,这时候我选择用spyder来测试代码,spyder是anaconda 自带的一个IDE,好用是好用,就是常常罢工,不废话,打开spyder,可以再开始菜单打开,也可以直接在anaconda prompt的(base)下直接输入spyder即可打开,theano的官方的测试代码如下:

from theano import function, config, shared, tensor
import numpy
import time

vlen = 10 * 30 * 768  # 10 x #cores x # threads per core
iters = 1000

rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], tensor.exp(x))
print(f.maker.fgraph.toposort())
t0 = time.time()
for i in range(iters):
    r = f()
t1 = time.time()
print("Looping %d times took %f seconds" % (iters, t1 - t0))
print("Result is %s" % (r,))
if numpy.any([isinstance(x.op, tensor.Elemwise) and
              ('Gpu' not in type(x.op).__name__)
              for x in f.maker.fgraph.toposort()]):
    print('Used the cpu')
else:
    print('Used the gpu')

如果运行结果输出Used the gpu,恭喜调用显卡运算成功,theano安装完成,如果输出是Used the cpu,说明显卡没有调用成功,排查一下:电脑设备管理里面能不能看到独立显卡,不能着需要换个cuda版本,说明cuda与显卡不兼容,测试cuda的sample能否重新生成,测试cmd等。

6、安装keras

keras是…安装也是在anaconda prompt里安装,直接conda install keras即可。

2.总结

整个安装完这些环境不出错也很难,主要问题就在各个版本的安装包、模块能否配合运行:
cuda与显卡品牌一定要相适应,否则容易安装上cuda显卡驱动没了;
cuda与cudnn也要适应;
theano与python要适应;
总之要相适应。所以不建议安装太新的版本,可能太新的版本对以前的支持还不太成熟。

你可能感兴趣的:(win7 64位系统 安装深度学习环境(anaconda、cuda、cudnn、theano、keras等))