zoukankan      html  css  js  c++  java
  • Ubuntu-安装-theano+caffe-超详细教程

    一、说明

    • 本文是继《Ubuntu-安装-cuda7.0-单显卡-超详细教程》 之后的续篇。theano和caffe是深度学习库,对运算能力需求很大,最好使用cuda进行加速。所以,请先阅读《Ubuntu-安装-cuda7.0-单显卡-超详细教程》,成功安装cuda之后,再来安装theano和caffe。

    二、安装Theano

    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()
      # 安装s
      cipy
      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. 配置Theano

    • 在主目录下新建.theanorc文件

      cd ~vi .theanorc
    • 在.theanorc中输入下面的内容

      [cuda]root=/usr/local/cuda/bin/[global]floatX = float32device = gpu0[nvcc]fastmath = True

    7. 测试Theano是否在使用GPU

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

      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 xrange(iters):    r = f()t1 = time.time()print 'Looping %d times took' % iters, t1 - t0, 'seconds'print 'Result is', rif 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

    Theano相关资料

    • 参考:Using the GPU & THEANO_FLAGS & THEANORC
    • CUDA Toolkit默认安装在/usr/local/cuda/,含有bin, lib, include等子文件夹。/usr/local/cuda/bin/文件夹称为cuda root文件夹。 
    • 使用Theano时,必须告诉它CUDA root文件夹,有3种方法:

      • 定义$CUDA_ROOT环境变量。例如, CUDA_ROOT=/usr/local/cuda/bin/
      • 在THEANO_FLAGS中添加cuda.root标识。例如,THEANO_FLAGS='cuda.root=/usr/local/cuda/bin/'
      • 在.theanorc文件夹中添加[cuda]

        [cuda]root=/usr/local/cuda/bin/
    • 还需要更改设备选项(gpu or gpu0 or gpu1),设置默认的浮点计算类型(float32)

      • 方法一:THEANO_FLAGS=’cuda.root=/usr/local/cuda/bin/,device=gpu,floatX=float32’
      • 方法二:设置.theanorc文件的[global]选项:

        [cuda]root=/usr/local/cuda/bin/[global]device = gpufloatX = float32
    • 注意: 
      • 如果电脑有多个GPU,而配置是‘device=gpu’,驱动会选择其中一个使用(一般是 gpu0)。可以使用 nvida-smi 改变这一规则。
      • 可以通过指定 ‘device=gpuX’来选择一个特定的GPU。
      • 默认使用GPU计算。如果GPU有问题,Theano会退回使用CPU。可以通过设置标识‘force_device=True’,当GPU不能使用时,弹出错误信息。

    安装OpenCV

    下载OpenCV

    • 下载地址:https://github.com/jayrambhia/Install-OpenCV,这是根据大神编译过的版本进行安装的。
    • 切换到文件保存的文件夹,然后安装依赖项:
    #切换路径cd ~/Downloads/Install-OpenCV-master/Ubuntu#安装OpenCV的依赖项sudo ./dependencies.sh
    • 修改opencv2_4_9.sh
    • 如果不添加CUDA_GENERATION,编译过程会失败 参考文章
    #切换路径cd 2.4#修改opencv2_4_9.sh, 添加CUDA_GENERATION#根据显卡支持Fermi或Kepler做相应的修改。此处以Fermi为例。sudo gedit opencv2_4_9.sh

    将以下内容

    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D ..

    修改为:

    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D CUDA_GENERATION=Fermi ..

    即在最后的..前面添加CUDA_GENERATION=Fermi

    • 安装最新版opencv2_4_9
    #添加执行权限sudo chmod +x opencv2_4_9.sh#安装OpenCVsudo ./opencv2_4_9.sh

    等待…..,直到安装完成。如下图所示。 
    这里写图片描述

    安装其它依赖项

    sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler protobuf-c-compiler python-pandas 

    安装glog

    1. Google Logging Library(glog),下载地址:https://code.google.com/p/google-glog/,然后解压安装: 
      tarzxvfglog0.3.3.tar.gz ./ configure 
      make sudo make install

    下载caffe

    下载地址:https://github.com/BVLC/caffe 
    本地解压 
    切换路径cd ~/Downloads/caffe-master/python 
    执行以下命令,安装python环境 
    for req in (catrequirements.txt);dosudopipinstallreq; done

    安装Matlab

    选择Mathworks.Matlab.R2014a.Unix.iso - 右键 - 使用磁盘映像挂载器打开” 
    进入装载的虚拟光盘,拷贝全部文件至home/Matlab 文件夹 
    3. 授权安装文件夹 
    $ chmod a+x Matlab -R 
    4. 安装 
    $ sudo ./install 
    拷贝 libmwservices.so 至 /usr/local/MATLAB/R2014a/bin/glnxa64 
    sudocplibmwservices.so/usr/local/MATLAB/R2014a/bin/glnxa64/sh /usr/local/MATLAB/R2014a/bin/matlab

    参考文章

    Ubuntu14.04安装Theano详细教程 

    caffe官方安装教程

    Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明

    Caffe在Ubuntu 14.04 64bit 下的安装

    Ubuntu Theano CUDA 

    Unsupported gpu architecture ‘compute_11’解决方法

    Caffe + Ubuntu 15.04 + CUDA 7.0 新手安装配置指南(推荐)

  • 相关阅读:
    Spring boot 集成三种拦截方式
    Spring boot 异常处理配置
    Linux 启动、停止、重启tomcat工具(Shell脚本)
    Java 序列化对象工具类
    Spring boot 集成 Swagger
    Spring boot 项目导出可执行jar
    包扫描自定义注解类并实例化
    Zuul 网关搭建
    Hystrix + Hystrix Dashboard搭建(Spring Cloud 2.X)
    Feign + Hystrix 服务熔断和服务降级
  • 原文地址:https://www.cnblogs.com/anyview/p/5025704.html
Copyright © 2011-2022 走看看