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 新手安裝配置指南(推薦)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM