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信息表示配置成功!!!

posted on 2016-11-28 14:51  Kevin.Tu  阅读(980)  评论(0编辑  收藏  举报