64位Windos10+theano+VS2012+GPU加速

theano作为深度学习框架之一,网上有关theano配置并且实现GPU加速的例子很多
我这里简要写一下我的配置过程。

(1)Anaconda2的安装
      之前使用的是标准的Python,使用任何函数库都需要用pip和install安装。在安装theano的过程中,我发现要安装的东西实在太多了,所以听从网上的劝告,改用Anaconda2
      Anaconda是一个科学计算环境,自带的包管理器conda很强大。之所以选择它是因为它内置了python,以及numpy、scipy两个必要库和一些其他库,比起自己安装要省事,不太需要考虑兼容性等等。此外,还具有类似于Matlab的交互窗口,当然你也可以使用Pycharm,把应用程序选择Anaconda对应的Python即可。
     直接上官网:Anaconda2下载与自己Python版本和操作系统相符的exe即可,下载完直接双击安装即可,安装应该也不需要配置环境变量(自动配置好了),不放心可以查看一下:
     可以再打开Anaconda Prompt,输入python,如果不报错,就说明安装正确。也可以输入conda list查看已安装的库:
      往下翻看,可以看到numpy,scipy,以及sklearn等。

(2)theano的安装
     打开Anaconda Prompt,输入conda install mingw libpython安装MinGW包。安装完成后,输入pip install theano即可。
     theano安装完成后,输入python进入python环境,输入import theano,如果不报错则theano安装成功。

(3)CUDA的安装
     如果需要GPU加速的话,需要安装CUDA,装theano就是为了深度学习啊,所以必须装啊!官网下载地址:CUDA 8.0。如下图,根据自己的计算机选择相应的安装包:
      下载后直接安装就行,地址我就设置的默认地址,半小时内肯定能装完。唯一想说的就是最好装完整版的,如下图:
        安装后可以查看一下系统的环境变量,有CUDA\V8.0和CUDA\bin,应该就没问题。可以打开Anaconda Prompt 输入nvcc-v命令,出现CUDA的版本信息就是安装成功了:

(4)CUDA的配置
     如果是使用VS编程,那就需要在VS下配置CUDA,可以参考:CUDA的VS配置。如果你仅仅是使用Python编程,可以暂时不需要考虑这一步。(建议先不要搞这个)
     至于CUDA支持的VS版本,官网给出的如下图,vs10,12,13应该都没问题。
       配置.theanorc文件,这一步很重要,别弄错了。在C:\Users\administrator\建立.theanor.txt文件(例如我是C:\Users\Tianming\),输入如下内容:
       画红线是需要注意的地方,填上自己安装软件相应的地址,分配内存那个官网给的1,但是我会报错,所以改成0.8。如果txt内不写cnmem项,调用theano时,会显示CNMem is disabled
      下面是最后一步,就是再安装CuDNN函数包,否则无法运行GPU(报错CuDNN not available)。这一步很简单,下载CuDNN函数包:cudnn-8.0-windows10-x64-v5.1即可。下载完:有三个文件夹:

        将每个文件夹的文件加入CUDA/v7.5/的相应文件夹即可。至此,我们就完成了所有配置工作。下面是测试GPU。


(5)GPU测试

        首先可以打开,Anaconda Prompt,进入python,再次输入import theano,会出现:

       关键看红线处,warning不用太在意。

       下面再用python运行一段测试GPU的经典代码:

from theano import function, config, shared, sandbox
import theano.tensor as T
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([], 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')


后续我会按照Theano官网的深度学习指南继续学习:Theano deeplearning tutorial

如果这篇文章对你有帮助,可以点个赞或者关注我,我会更有动力分享学习过程,谢啦~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值