ubuntu 14.04+ GTX 1070+cuda 8.0 + cudnn 5.1+opencv3.0+caffe配置一步到位

ubuntu 14.04+ GTX 1070+cuda 8.0 + cudnn 5.1+opencv3.0的安裝參見我前兩篇博客,詳細介紹了!

本文重點爲caffe的安裝與配置細節

1、安裝caffe前,安裝依賴項和各種庫

 

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


2、安裝caffe需要的python包

 

網上介紹用現有的anaconda,我反正不建議,因爲路徑設置麻煩,很容易出錯,而且自己安裝很簡單也挺快的。

首先需要安裝pip

 

sudo apt-get install python-pip

再下載caffe,我把caffe放在用戶目錄下

 

sudo apt-get install git
git --version

git clone https://github.com/BVLC/caffe.git

再轉到caffe的python目錄,安裝scipy

cd caffe/python

sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose

最後安裝requirement裏面的包,需要root權限

 


 

sudo su

for req in $(cat requirements.txt)

do pip install $req

done //回車鍵

 

 

 

 

如果提示報錯,一般是缺少必須的包引起的,直接根據提示pip install  <package-name>就行了

安裝完後退出root權限

 

exit

 

 

3、編譯caffe

 

 


 
cd ~/caffe cp Makefile.config.example Makefile.config gedit Makefile.config

這裏僅需要修改兩處:

 

 

# USE_CUDNN := 1 //取消註釋

 
# OPENCV_VERSION := 3//取消註釋

 

 

 

 

make all -j8
make test
make runtest
make pycaffe

在make all -j8 時,

出現錯誤/usr/bin/ld: 找不到 -lhdf5_hl         /usr/bin/ld: 找不到 -lhdf5

然後sudo apt-get install libhdf5-dev       sudo apt-get install libhdf5-serial-dev都顯示已經最高版本。但在計算機裏搜索不到libhdf5.so以及libhdf5_hl.so,然後去官網https://launchpad.net/ubuntu/+source/hdf5/下載libhdf5-dev   libhdf5-serial-dev,然後在/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so裏面找到,所以,執行以下:

sudo cp /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so /usr/lib/

sudo cp /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_hl.so /usr/lib/

make clean

make all -j8

 

出現錯誤/usr/bin/ld:cannot find -lopencv_imgcodecs  

參見http://blogs.csdn.net/jideljd_2010/article/details/38046901這位大神的博文得到靈感
解決方法:在計算機裏搜索libopencv_imgcodecs 的文件,發現有4個相關文件在/home/shan/opencv-3.0.0/build/lib/裏,複製移動

 

sudo cp /home/shan/opencv-3.0.0/build/lib/libopencv_imgcodecs.so /usr/lib/
sudo cp /home/shan/opencv-3.0.0/build/lib/libopencv_imgcodecs.so.3.0 /usr/lib/
sudo cp /home/shan/opencv-3.0.0/build/lib/libopencv_imgcodecs.so3.0.0 /usr/lib/
sudo cp /home/shan/opencv-3.0.0/build/lib/libopencv_imgcodecs_pch_dephelp.a /usr/lib/

在解決的過程中結合了http://blog.csdn.net/w113691/article/details/77942408這位大神的博文

 

先將Makefile.config文件中

OPENCV_VERSION :=3 註釋掉,只修改USE_OPENCV := 1

修改後的結果:

USE_OPENCV := 1

#OPENCV_VERSION := 3

 

在caffe根目錄下,找到Makefile文件,打開文件

 

查找“Derive include and lib directories”一節,修改“LIBRARIES +=”的最後一行(LIBRARIES +=opencv_imgcodecs ),增加opencv_imgcodecs

opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

(此時應該變爲LIBRARIES += opencv_imgcodecs  opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs)

保存,退出。

 

 

 

成功解決!

 

 

make test 沒問題
在make runtest時,出現錯誤
問題描述: error while loading shared libraries: libcudart.so.8.0: cannot open shared object file: No such file or directory
解決辦法:首先確認/etc/profile中的路徑包含了cuda8.0的安裝路徑及相應的庫文件

 

 

 

sudo gedit /etc/profile
export PATH=$PATH:/usr/local/cuda-8.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-8.0/lib64
$source /etc/profile

 

使配置文件生效,再次執行。
若仍提示相同的錯誤,則執行以下命令,將相應的庫文件複製到/usr/lib

 

 

 

sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig

成功解決!

 

運行make pycaffe
在成功編譯caffe的源碼之後,可以在python環境中使用caffe。
在Ubuntu環境下,打開python解釋程序,輸入import caffe時:出現以下錯誤

 

>>>import caffe  
Traceback (most recent call last):  
File "<stdin>", line 1, in <module>  
ImportError: No module named caffe  

解決辦法:

 

 

 

 

sudo gedit ~/.bashrc 

 

寫入

 


 
export PYTHONPATH=~/caffe/python:$PYTHONPATH 
source ~/.bashrc

生效後在新終端重新輸入import caffe時:無任何輸出,證明無錯誤

 

 

 

至此,全部安裝完成!!!!


測試:
 

caffe測試,執行以下命令: 

cd ~/caffe 
sudo sh data/mnist/get_mnist.sh 
sudo sh examples/mnist/create_mnist.sh 

最後測試:

sudo sh examples/mnist/train_lenet.sh

運行成功!


 

 

 

 

 

 

 

 

 

 

 

 

 

 
發佈了20 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章