zoukankan      html  css  js  c++  java
  • 64位Win7下安装并配置Python3的深度学习库:Theano

      

     注:本文全原创,作者:Noah Zhang  (http://www.cnblogs.com/noahzn/)

      这两天在安装Python的深度学习库:Theano。尝试了好多遍,CMake、MinGW、BLAS、APLACK等等都装了试着自己编译,网上教程也搜了一大堆,但都没成功。昨晚回家清理干净电脑,又小心翼翼地装了一遍,成功,今天来公司又装了一遍,也成功,现把步骤记录如下:

      (注:本步骤适用于WIN7 64位操作系统,Python版本为3.4.3 64bit)

      1. 请将电脑清理干净。包括之前装的MinGW、Python等的环境变量。

      2. 安装:Microsoft Windows SDK for Windows 7 and .NET Framework 4。链接: http://pan.baidu.com/s/1o6uYbTC 密码: iy4c

      3. 安装:CUDA5.5。链接: http://pan.baidu.com/s/1bnuE4z1 密码: p9r4

      4. 安装:GCC。链接: http://pan.baidu.com/s/1jGou7MQ 密码: zvsx

        (注意:安装的时候,勾选安装“openmp”,不要勾选“add to PATH”)

        

      

      5. 安装完GCC后,把“D:TDM-GCC-64in”和“D:TDM-GCC-64x86_64-w64-mingw32”加入环境变量。(注意:我这里是装在D盘的,大家根据自己的安装路径更改哦)

      6. 安装WinPython。如果使用原生Python的话,还要安装BLAS(基础线性代数程序集),自己安装实在太麻烦了,之所以选用WinPython发行包是因为它可以自己链接MKL库,就不用我们自己编译安装BLAS了,而且自带了诸如cxfreeze、numpy、scipy、nltk、PyQt4等几十个常用的库。链接: http://pan.baidu.com/s/1kTimVIJ 密码: yc78

      检验numpy等库是否使用了blas加速,可以在python中输入:

    import numpy
    id(numpy.dot) == id(numpy.core.multiarray.dot)

      如果结果是:False,则表明实现了BLAS加速。

      

      7. 创建GCC链接库。cmd下cd到安装WinPython的磁盘根目录,执行:

    gendef WinPython-64bit-3.4.3.2python-3.4.3.amd64python34.dll
    
    dlltool --dllname python34.dll --def python34.def --output-lib WinPython-64bit-3.4.3.2python-3.4.3.amd64libslibpython34.dll.a

      

      8. 安装Theano。官方推荐用git安装,我试过了,还是自己手动安装吧…把下载的“Theano-0.7.0-py3-none-any.whl”文件放到“WinPython-64bit-3.4.3.2python-3.4.3.amd64Libsite-packages”下,执行WinPython目录下的"WinPython Command Prompt.exe",cd到site-packages目录,输入:pip install Theano-0.7.0-py3-none-any.whl。

      链接: http://pan.baidu.com/s/1dDvWuGD 密码: nye6

      

      # 2015.05.20更新:

      # 推荐大家使用开发版的theano,官方解释是修复了海量BUG…

      # 先下载git for windows, 链接: http://pan.baidu.com/s/1o6omEs6 密码: ayi6

      # 然后进入site-packages文件夹,右键:Git Bash Here,输入:git clone https://github.com/Theano/Theano.git

      # 然后切到theano文件夹里安装一下即可:python setup.py install

      9. 配置Theano。在WinPython目录下的settings文件夹内创建一个文件“.theanorc.txt”,在里面输入:

    [global]
    floatX = float32
    device = gpu
    
    [cuda]
    root = D:cuda5.5in

        (注意:这里的cuda目录根据你的安装路径自行调整。)

      10. 重启电脑。(重要)

      11. 测试是否安装成功。打开IDLE,键入官方的测试代码(官方的代码是基于Python2写的,我已经改成了Python3可执行的代码):

    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([], sandbox.cuda.basic_ops.gpu_from_host(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)
    print('Numpy result is', numpy.asarray(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')

      如果成功的话,会显示类似下面的信息:

    >>> 
    Using gpu device 0: GeForce 605
    [GpuElemwise{exp,no_inplace}(<CudaNdarrayType(float32, vector)>)]
    Looping 1000 times took 0.48799991607666016 seconds
    Result is <CudaNdarray object at 0x0000000006805F70>
    Numpy result is [ 1.23178029  1.61879349  1.52278066 ...,  2.20771813  2.29967761
      1.62323296]
    Used the gpu

      嗯…公司电脑显卡是Geforce 605……

      这样就大功告成了,我自己在摸索安装时,遇到了各种错误信息,大家有碰到什么问题可以留言,或许我知道如何解决……

  • 相关阅读:
    【笔记】模电lesson04 晶体管
    [笔记]模电如何判断和识别二极管的正负极
    [笔记]模电用数字万用表判断三极管管脚
    【笔记】模电lesson06 放大电路分析方法I
    【笔记】模电lesson07 放大电路分析方法II
    【翻译】在Verilog设计中使用参数化模块库(Quartus II)(Verilog)
    【原创】DE2实验练习解答—lab5 Clocks and Timers 【Verilog】【Digital Logic】
    【笔记】模电lesson 02 常用半导体器件
    【翻译】modelsim指南 I 之基本仿真(digital logic)
    【原创】DE2 实验练习解答—lab 2:数字和显示(digital Logic)(DE2)
  • 原文地址:https://www.cnblogs.com/noahzn/p/4506295.html
Copyright © 2011-2022 走看看