Ubuntu16.04安裝caffe(gpu版)

繼續(xù)前面tensorflow(gpu版)、torch后,我們開始安裝caffe

若要安裝NVIDIA顯卡驅(qū)動或者安裝CUDA+cudnn,參見:http://www.itdecent.cn/p/1baf9848b7d7 (內(nèi)附下載資源)
若需要安裝tensorflow或者torch,參見:http://www.itdecent.cn/p/038c6e073201

1.首先,我們安裝一下依賴包

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

2. 安裝opencv,注意:我們不安裝opencv3,一般用也只用opencv2,沒有必要用3

下載opencv版本自選,這里選擇下載opencv2.4.13,下載地址:https://opencv.org/releases.html
(1) 將下載好的文件夾解壓,進入文件夾 opencv-2.4.13:

cd opencv-2.4.13

(2) 新建一個文件夾用于存放臨時文件:

mkdir release

(3) 切換到該臨時文件夾:

cd release

(4) 開始編譯:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

make -j8 //開啟線程 按照自己的配置
sudo make install

然后進行環(huán)境配置:

(1) 將opencv的庫加入到路徑,從而讓系統(tǒng)可以找到:

sudo gedit /etc/ld.so.conf.d/opencv.conf

(2) 末尾加入/usr/local/lib,保存退出:

sudo ldconfig #使配置生效

sudo gedit /etc/bash.bashrc

末尾加入:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

保存退出

sudo source /etc/bash.bashrc #使配置生效

到此為止,opencv的所有工作就做完了

可能有些小伙伴在終端測試時會發(fā)現(xiàn)問題:

ImportError: dynamic module does not define init function (PyInit_cv2)

這時候只需要通過pip安裝opencv-python就好了:

pip3 install opencv-python

3. 下面我們開始安裝caffe

在此確認步驟1中的步驟是否完成(重新輸入步驟1中的命令以確認),安裝好后方可繼續(xù)
在自己想安裝caffe的位置打開終端:

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

進入 caffe ,將 Makefile.config.example 文件復制一份并更名為 Makefile.config :

cd caffe
sudo cp Makefile.config.example Makefile.config

在 caffe 目錄下,修改 Makefile.config 文件:

sudo gedit Makefile.config

修改 Makefile.config 文件內(nèi)容:
(1).應用 cudnn


?#USE_CUDNN := 1
修改成:
USE_CUDNN := 1

(2).應用 opencv


?#USE_OPENCV := 0
修改為:
USE_OPENCV := 1

(3).使用 python 接口


?#WITH_PYTHON_LAYER := 1
修改為
WITH_PYTHON_LAYER := 1

(4).修改 python 路徑:

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

然后修改 caffe 目錄下的 Makefile 文件:

sudo gedit Makefile


?NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替換為:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)


?LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改為:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

然后修改 /usr/local/cuda/include/host_config.h 文件 :

sudo gedit /usr/local/cuda/include/host_config.h


?#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改為
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

OK ,可以開始編譯了,在 caffe 目錄下執(zhí)行 :

make all -j8

這是如果之前的配置或安裝出錯,那么編譯就會出現(xiàn)各種各樣的問題,所以前面的步驟一定要細心。

編譯成功后可運行測試:

sudo make runtest -j8

4. 最后我們安裝 pycaffe接口環(huán)境

pycaffe 的安裝是為了更方便的去使用 caffe:

cd caffe
sudo make pycaffe -j8

5. 驗證

編譯 pycaffe 成功后,驗證一下是否可以在 python 中導入 caffe 包,首先進入 python 環(huán)境:

python

然后導入 caffe :

?>>> import caffe

若不報錯則表示 caffe 的 python 接口已正確編譯

在終端import caffe成功,但是當使用jupytr notebook時失敗的解決辦法


如圖,出現(xiàn)這種情況時,我們采取一下方式解決:

import os
import sys
caffe_root='/home/haoyev5/caffe/python' #自己的caffe路徑
os.chdir(caffe_root)
sys.path.insert(0,caffe_root+'python')

第三行有些是caffe-mast文件夾下的路勁,改下就好了,但是有個弊端就是,每次使用caffe時都必須加入以上幾行,略為不便
另外有些說法是這樣子的:

import sys
sys.path.append('/home/haoyev5/caffe/python')

我采取了這種方式,無效,大家可以試試

另外,若遇到有關(guān)于libpng16.so的錯誤,如 ImportError: libpng16.so.16: cannot open shared object file: No such file or directory,按照https://blog.csdn.net/pkokocl/article/details/78756422下載安裝就好了。

感謝:https://blog.csdn.net/yhaolpz/article/details/71375762

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容