1. 程式人生 > >Ubuntu16.04 Caffe 安裝步驟(親測可用)

Ubuntu16.04 Caffe 安裝步驟(親測可用)

安裝流程細分為如下10個步驟,細化步驟粒度更易避免出錯:

1、安裝 CUDA 9.2
2、安裝 cudnn
3、安裝 opencv3.1
4、安裝 caffe
5、安裝 pycaffe notebook 介面環境

0 安裝依賴包

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev

sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

sudo apt-get install git cmake build-essential

第一步 安裝CUDA9.2

可以參考之前的cuda安裝部落格:https://blog.csdnnet/TH_NUM/article/details/83411686

第二步驟安裝cudnn

登入官網:https://developer.nvidia.com/rdp/cudnn-archive,下載對應 cuda 版本且 linux 系統的 cudnn 壓縮包。在這裡插入圖片描述
我這裡下載的是 cudNN v7.3.1 Library for linux

下載完成後解壓,得到一個 cudn 資料夾,該資料夾下include 和 lib64 兩個資料夾,命令列進入 cudn/include 路徑下,然後進行以下操作:
(1)

sudo cp cudnn.h /usr/local/cuda/include/ #複製標頭檔案

(2) 進入lib64目錄下,對動態檔案進行復制和軟連結一定要注意下面的安裝注意事項,否則執行測試樣例的時候會出錯。

cd /cuda/lib64
sudo cp lib* /usr/local/cuda/lib64/    #複製動態連結庫

cd /usr/local/cuda/lib64/

sudo rm -rf libcudnn.so  libcudnn.so.7    #刪除原有動態檔案,我這裡是沒有libcudnn.so.7的

sudo ln -s libcudnn.so.7.0.4  libcudnn.so.7  #生成軟銜接,要檢查自己的是不是libcudnn.so.7.0.4,也可能是其他的版本,一定要注意

sudo ln -s libcudnn.so.7 libcudnn.so      #生成軟連結

安裝OpenCV3.2

詳細的安裝請參考:http://www.linuxidc.com/Linux/2017-07/145446.htm

(1) 從官網(http://opencv.org/downloads.html)下載Opencv,並將其解壓到你要安裝的位置,假設解壓到了/home/opencv。

unzip opencv-3.2.0.zip

sudo cp ./opencv-3.2.0 /home/username

sudo mv opencv-3.2.0 opencv

(2) 安裝前準備,建立編譯資料夾

cd ~/opencv

mkdir build

cd build

(3) 配置

    sudo apt install cmake
    
    sudo cmake -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local  ..

(4) 編譯

sudo make -j8 (-j8表示平行計算,根據自己電腦的配置進行設定,配置比較低的電腦可以將數字改小或不使用,直接輸make)

(5) 安裝

以上只是將opencv編譯成功,還沒將opencv安裝,需要執行下面指令進行安裝:

sudo make install

配置caffe

(1) 下載Caffe

使用Git直接下載Caffe非常簡單,或者去https://github.com/BVLC/caffe下載。

下載完成後,會在家目錄下的下載裡找到caffe-master.zip,用unzip命令解壓到家目錄下,然後重新命名為caffe。

(3) 修改Makefile.config

因為make指令只能make Makefile.config檔案,而Makefile.config.example是caffe給出的makefile例子。因此,首先將Makefile.config.example的內容複製到Makefile.config:

sudo cp Makefile.config.example Makefile.config

開啟並修改配置檔案:

sudo gedit Makefile.config #開啟Makefile.config檔案
根據個人情況修改檔案:

a. 若使用cudnn,則將

#USE_CUDNN:= 1

修改成:

USE_CUDNN:= 1

b. 若使用的opencv版本是3的,則將

#OPENCV_VERSION:= 3

修改為:

OPENCV_VERSION:= 3

c. 若要使用python來編寫layer,則將

#WITH_PYTHON_LAYER:= 1 

修改為WITH_PYTHON_LAYER := 1

d. 重要的一項,將

#Whatever else you find you need goes here. 下面的

INCLUDE_DIRS:= $(PYTHON_INCLUDE) /usr/local/include

LIBRARY_DIRS:= $(PYTHON_LIB) /usr/local/lib /usr/lib

修改為:

INCLUDE_DIRS:= $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial

LIBRARY_DIRS:= $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/usr/lib/x86_64-linux-gnu/hdf5/serial      

這是因為Ubuntu16.04的檔案包含位置發生了變化,尤其是需要用到的hdf5的位置,所以需要更改這一路徑。

(4) 修改Makefile檔案

開啟Makefile檔案,做如下修改,將:

NVCCFLAGS +=-ccbin=\$(CXX) -Xcompiler-fPIC\$(COMMON_FLAGS)

替換為:

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX)-Xcompiler -fPIC $(COMMON_FLAGS)

(5) 編輯/usr/local/cuda/include/host_config.h

將其中的第115行註釋掉,將

#error-- unsupported GNU version! gcc versionslater than 4.9 are not supported!

改為:

//#error-- unsupported GNU version! gcc versionslater than 4.9 are not supported!

(6) 編譯

make all -j8  #-j根據自己電腦配置決定

(7) 測試

sudo make runtest

如果執行之後出現下圖所示,說明caffe配置成功。
在這裡插入圖片描述

安裝 pycaffe notebook 介面環境

在上一步成功安裝 caffe 之後,就可以通過 caffe 去做訓練資料集或者預測各種相關的事了,只不過需要在命令列下通過 caffe 命令進行操作,而這一步 pycaffe 的安裝以及 notebook 環境配置只是為了更方便的去使用 caffe ,實際上大多數都是通過 python 來操作 caffe 的,而 notebook 使用瀏覽器作為介面,可以更方便的編寫和執行 python 程式碼。

這裡我使用的是python2.7,python3 一堆錯誤。。。。。

(1)然後編譯 pycaffe :

cd caffe
sudo make pycaffe -j8

編譯 pycaffe 成功後,驗證一下是否可以在 python 中匯入 caffe 包,首先進入 python 環境:

import caffe

若不報錯則表示 caffe 的 python 介面已正確編譯,但是應該不會那麼順利,以下是我匯入 caffe 時出現的錯誤:

錯誤1:

File "<stdin>", line 1, in <module>   ImportError: No module named caffe

解決方法:

sudo echo export PYTHONPATH="~/caffe/python" >> ~/.bashrc

source ~/.bashrc

錯誤2:

ImportError: No module named skimage.io

解決辦法:

pip install -U scikit-image #若沒有安裝pip: sudo apt install python-pip

ok,最後一步,配置notebook環境

首先要安裝python介面依賴庫,在caffe根目錄的python資料夾下,有一個requirements.txt的清單檔案,上面列出了需要的依賴庫,按照這個清單安裝就可以了。

在安裝scipy庫的時候,需要fortran編譯器(gfortran),如果沒有這個編譯器就會報錯,因此,我們可以先安裝一下。

首先進入 caffe/python 目錄下,執行安裝程式碼:

sudo apt-get install gfortran

for req in $(cat requirements.txt); do sudo pip install $req; done

安裝完成以後執行:

sudo pip install -r requirements.txt

就會看到,安裝成功的,都會顯示Requirement already satisfied, 沒有安裝成功的,會繼續安裝。

然後安裝 jupyter :

sudo pip install jupyter

安裝完成後執行 notebook :

jupyter notebook

或

ipython notebook

參考文章:
https://blog.csdn.net/yhaolpz/article/details/71375762