caffe安裝:ubuntu16.04 + opencv2.4 + python 2.7+ CUDA 8.0 RC + CuDNN 5.0


官方教程:http://caffe.berkeleyvision.org/install_apt.html

主要參考教程: https://github.com/BVLC/caffe/wiki/Ubuntu-16.04-or-15.10-Installation-Guide

其他參考:http://blog.csdn.net/hjimce/article/details/51999566  

http://www.52nlp.cn/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E4%B8%BB%E6%9C%BA%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE-ubuntu-16-04-nvidia-gtx-1080-cuda-8

 http://textminingonline.com/dive-into-tensorflow-part-iii-gtx-1080-ubuntu16-04-cuda8-0-cudnn5-0-tensorflow

 

——————————————————————————————————————————————————————

參考官網的教程,先安裝不支持GPU版本的, 編譯成功后再安裝CUDA,增加GPU功能。

http://www.cnblogs.com/balmy/p/5752589.html

這是在github項目下面的教程, 根據自己的機子修改了部分內容(修改的地方其實並不多,細心注意下就好)。

環境為 ubuntu16.04 + opencv2.4 + python2.7

 

再來增加GPU的支持,先下載安裝CUDA 8.0

CUDA安裝:官方dec文件安裝:

 1. sudo dpkg -i cuda-repo-ubuntu1604-8-0-rc_8.0.27-1_amd64-deb

 2. sudo apt-get update

 3. sudo apt-get install cuda

安裝完后檢查:

  nvidia-smi

(自己的本機顯卡驅動為nvidia 361)

 

下載CuDNN(https://developer.nvidia.com/cudnn),選擇5.0版本(和cuda 8.0匹配),

解壓后將 /lib64 目錄下的文件拷貝到 /usr/lib/x86_64-linux-gnu/

將 /include 目錄下的文件拷貝到 /usr/include/

重啟電腦,執行 export 檢查環境變量。

重新編譯caffe:

進入caffe-master目錄下,修改 Makefile.config, 根據里面的注釋來修改,注釋掉CPU_ONLY = 1,其他選項根據自己的情況來修改。

編譯前先執行 make clean

然后依次執行:

make all

make test

make runtest

make pycaffe

make distribute

可在后面增加 -j $(($(nproc) + 1)),來使用多個處理器編譯。

 

編譯過程會出現gcc版本錯誤,顯示版本太高了(5.4),打開/usr/local/cuda/include/host_config.h

注釋掉:    error -- unsupported GNU version! gcc versions later than 5.3 are not supported! 

 

在cuda和opencv編譯的時候也會報gcc版本太高的錯誤(主要是cuda引起的,如果opencv不用cuda就沒這個錯誤):

解決:

  安裝gcc-4.9,g++-4.9

  sudo apt-get install gcc-4.9

  sudo apt-get install g++-4.9

  安裝了gcc-4.9,g++4.9,但是用gcc -v查看版本還是顯示的5.4,需要改變版本的優先級用下面的命令解決了:

  sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20

  sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20

  sudo update-alternatives --config gcc
  sudo update-alternatives --config g++

 

 這步完成后再去編譯caffe,又需要將gcc的版本換成5以上,否則會遇到protobuf的錯誤(在這里糾結了很久,還以為是protobuf的問題,跑去卸載了protobuf,重新github上下載,自己編譯,但是結果還是有問題)

最終就是講gcc版本換成5以上,再在 /usr/local/cuda/include/host_config.h 這個文件中注釋掉:    error -- unsupported GNU version! gcc versions later than 5.3 are not supported! 問題就解決了。

 

———————————————————————————————————————————————————————

 (備份的,還沒寫完)opencv 3.1的還沒有測試

OpenCV 3.1 + ubuntu 16.04

https://github.com/BVLC/caffe/wiki/Ubuntu-16.04-or-15.10-OpenCV-3.1-Installation-Guide

 

遇到過的坑:

在不用cuda的情況下,編譯caffe報錯:

  Makefile:616:recipe for target '.build_release/tools/convert_imageset.bin' failed

  make:*** [.build_release/tools/convert_imageset.bin] Error 1

可能的原因:采用apt-get 安裝的protobuf版本比較久舊,所以先卸載原來的protobuf,下載最新的重新編譯安裝

  sudo apt-get autoremove libprotobuf-dev protobuf-compiler

  從github上下載protobuf

  打開protobuf文件目錄進行編譯安裝,過程如下:

    sh autogen.sh

    生產configure文件,這步可能會遇到錯誤:

      configure.ac:64: error:possibly undefined macro: AC_PROG_LIBTOOL

    輸入命令:sudo apt-get install libtool

    再次運行:sh autogen.sh

      還是報錯。原因是沒有gmock文件,而gmock的下載地址被牆了。

      解決:手動下載gmock,再根據autogen.sh里面的代碼運行:

        unzip -q gmock-1.7.0.zip

        rm gmock-1.7.0.zip

        mv gmock-1.7.0 gmock

      再次運行sh autogen.sh,應該可以成功。

    對protobuf進行編譯,按照順序,依次輸入:

      ./configure

      make -j8

      make check

      sudo make install

      sudo ldconfig

    默認安裝到 /usr/local

    完成安裝

    protobuf配置環境變量

      打開profile文件:sudo kate /etc/profile

      添加: export PATH=$PATH:/usr/local/protobuf/bin

          export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/<

      保存退出后輸入命令:source /etc/profile

    配置動態鏈接庫:

      打開配置文件ld.so.conf:sudo kate /etc/ld.so.conf

      添加: /usr/local/protobuf/lib

      更新配置: sudo su

            ldconfig

再試試重新編譯caffe

然而還是錯誤的。

真正的原因是gcc的版本之前被降到了4.9,需要回到5.0,上面已經介紹過了。

 


免責聲明!

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



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