win10+64位 安装Theano并实现GPU加速

来源:互联网 发布:网站性能优化技术 编辑:程序博客网 时间:2024/06/02 23:59

转自:http://blog.csdn.net/orlandowww/article/details/53313804

一.安装Anaconda

我使用的Anaconda是对应的python2.7 
配置环境变量:用户变量中的path变量(如果没有就新建一个),在后边追加C:\Anaconda;C:\Anaconda\Scripts; 不要漏掉分号,此处根据自己的Anaconda安装目录填写。

二.安装MinGw

1.打开cmd, 输入conda install mingw libpython,然后回车,会出现安装进度,稍等一会就会安装完毕。 
如果没有出现安装进度,在cmd下输入conda clean –lock 然后再重新输入conda install mingw libpython 。 
2.在系统环境变量中添加path C:\Anaconda\MinGW\bin 和 C:\Anaconda\MinGW\x86_64-w64-mingw32\lib; (此处根据自己Anaconda实际位置修改)

三.安装Theano

1.在用户变量中新建变量pythonpath,变量值为C:\Anaconda\Lib\site-packages\theano; ,此处就是指明安装的theano的目录是哪,虽然还没有安装,但先写上。 
2.打开cmd,会看到窗口里边有个默认路径,例如C:\Users\www>,根据这个默认路径,找到对应的目录,在该目录下新建一个文本文档.theanorc.txt (注意有两个点),编辑它,写入以下内容: 
[global] 
openmp=False 
[blas] 
ldflags= 
[gcc] 
cxxflags=-IC:\Anaconda\MinGW 
其中最后一行是你安装的Anaconda的路径,不要弄错,否则找不到MinGw。 
3.打开cmd,输入pip install theano,回车后开始安装,很快就会安好。 
4.在Python下,运行import theano,没有报错则证明安装成功了。

四.配置GPU加速

1.首先检查电脑显卡是否支持GPU加速:以免费时费力还没有结果。 
2.安装Visual Studio环境:我一开始安装的VS2010后来出问题,改用VS2012问题解决了,可能跟后面选择的CUDA版本有关。建议安装在默认路径,VS安装完就可以了,不用打开。 
3.下载cuda:如果你的Anaconda(python)是64位的,那就下载cuda64bit的;否则下载32bit的。其次,如果你的是笔记本,那就选择notebook,否则选择桌面版。下载地址 。我选择的是7.5版本,这个要根据自己的显卡型号选择,我的是NVIDIA GeForce GTX 860M。 
4.安装cuda:选择“自定义安装”,安装全部功能,还有要安装到默认位置最好,安装需要点时间。安装中有一步会自动寻找本机的VS版本,如果找不到后面就会出问题。 
5.在cmd中输入nvcc –V然后回车,如果安装正确会显示Cuda的版本号。 
6.修改.theanorc.txt,如下: 
[global] 
openmp=False 
device = gpu 
floatX = float32 
allow_input_downcast=True 
[blas] 
ldflags= 
[gcc] 
cxxflags=-IE:\Anaconda\MinGW #此处根据实际路径修改 
[nvcc] 
flags = -LE:\Anaconda\libs #此处根据实际路径修改 
compiler_bindir = C:\Program Files(x86)\Microsoft Visual Studio 11.0\VC\bin #此处一定要和你安装的VS的路径保持一致 
fastmath = True 
7.然后就可以测试一下:是否能使用GPU。 
测试代码:

from theano import function, config, shared, sandboximport theano.tensor as Timport numpyimport timevlen = 10 * 30 * 768  # 10 x #cores x # threads per coreiters = 1000rng = numpy.random.RandomState(22)x = shared(numpy.asarray(rng.rand(vlen), config.floatX))f = function([], T.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' % iters, t1 - t0, 'seconds')print ('Result is', r)if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):    print ('Used the cpu')else:    print ('Used the gpu')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

直接粘贴然后运行,就会输出为Used the gpu,宣告成功。

总结一下:vs的版本选择是根据cuda版本,而cuda的版本选择是根据你电脑显卡的版本。我使用的是vs2012,cuda7.5,显卡NVIDIA GeForce GTX 860M。

配置GPU参考资料: http://blog.csdn.net/m624197265/article/details/45700619

阅读全文
0 0
原创粉丝点击