• ubuntu 安装 theano


    参考博客: http://www.cnblogs.com/anyview/p/5025704.html 

    1. 安装gfortran, numpy, scipy, sklearn, blas, atlas等包

    # 安装gfortran,后面编译过程中会用到
    sudo apt-get install gfortran
    # 安装blas,Ubuntu下对应的是libopenblas,其它操作系统可能需要安装其它版本的blas——这是个OS相关的。
    sudo apt-get install libopenblas-dev
    # 安装lapack,Ubuntu下对应的是liblapack-dev,和OS相关。
    sudo apt-get install liblapack-dev
    # 安装atlas,Ubuntu下对应的是libatlas-base-dev,和OS相关。
    sudo apt-get install libatlas-base-dev
    # 安装pip
    sudo apt-get install python-pip
    sudo apt-get install python-dev
    sudo apt-get install python-nose
    sudo apt-get install g++
    sudo apt-get install git

    2. 安装numpy和scipy

    • 安装这两个python库有点问题,如果使用apt-get安装,后面的test不能通过。如果使用pip安装,有得考虑各种依赖关系。

    • 所以,先使用apt-get安装,然后再卸载,最后再使用pip安装。这样,既能不考虑依赖关系,又能通过后面的test()测试。

    #安装numpy和scipy
    sudo apt-get install python-numpy
    sudo apt-get install python-scipy
    sudo apt-get install python-sklearn
    #卸载numpy和scipy
    sudo apt-get remove python-numpy
    sudo apt-get remove python-scipy
    # 安装numpy
    sudo pip install numpy
    # 测试numpy#,如果没有安装python-nose,测试会出错!python -c "
    import numpy
    numpy.test()
    # 安装scipy
    sudo pip install scipy
    # 测试scipypython -c "
    import scipy
    scipy.test()"

    3. 安装Theano

    • 前面的操作如果没有出现错误,就可以开始安装Theano了。命令如下所示。

    # 安装Theano
    sudo pip install Theano
    # 测试Theano
    import theano;
    theano.test()

    4.安装pyCUDA
    • 测试Theano时,提示PyCUDA import错误,因此需要安装pyCUDA。而PyCUDA需要以Boost为基础,所以应该先安装Boost。
    • 使用pip安装pyCUDA。

    安装boost
    sudo apt-get install libboost-all-dev

    如果使用pip安装pyCUDA出错,使用下面安装方式。参考文章:《Ubuntu Theano CUDA》

     sudo ldconfig /usr/local/cuda-7.0/lib64

    5. 解决cuda_ndarray.cu错误

    • 如果出现错误:ERROR (theano.sandbox.cuda): Failed to compile cuda_ndarray.cu: libcublas.so.6.5 cannot open shared object file: No such file or directory,需要运行以下命令:

      sudo ldconfig /usr/local/cuda-7.0/lib64

    6.配置GUP

    我的电脑账号名字yf

    在主目录下面/home/yf/新建 .theanorc目录,写人如下内容:

    [global] 
    device=gpu
    floatX=float32 
    root=/usr/local/cuda-7.5
    [nvcc] 
    fastmath=True 
    [blas]
    ldflags=-lopenblas
    [cuda]
    root=/usr/local/cuda-7.5

    7.测试Theano是否在使用GPU

    • 将下列python代码复制到useGPU.py,并运行。

    • 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 xrange(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, T.Elemwise) for x in f.maker.fgraph.toposort()]):
          print('Used the cpu')
      else:
          print('Used the gpu')
    • 假定上面已经设置文件.theanorc,运行命令如下所示:
    • python useGPU.py
    • 如果出现下面的错误信息,请运行命令sudo ldconfig /usr/local/cuda-7.0/lib64参考 

      #错误信息ERROR (theano.sandbox.cuda): Failed to compile cuda_ndarray.cu: libcublas.so.7.0: cannot open shared object file: No such file or directory

    然后把调用GPU的测试程序copy一下,在http://deeplearning.net/software/theano/tutorial/using_gpu.html#testing-theano-with-gpu 这里。

    终端显示GPU信息表示配置成功!!!

  • 相关阅读:
    SpringBoot+ElementUI实现通用文件下载请求(全流程图文详细教程)
    Java中将String格式的标准时间字符串转换为Date格式的方法
    ElementUI中el-upload传递额外参数为date类型时后台SpringBoot接收不到
    模式、框架、架构和平台的区别
    架构、框架、模式和平台
    “模式”与“方式”的区别
    JAVA发送HTTP请求方式
    http status状态码,readyState状态码
    区分网络请求时http和ajax请求
    HTTP请求方式中8种请求方法
  • 原文地址:https://www.cnblogs.com/txg198955/p/6109509.html
Copyright © 2020-2023  润新知