Caffe – 一個基于C++編寫的深度學習框架,由于其高效性和便捷性廣泛應用于CV領域。它是由賈楊清在業余時間編寫的一個框架,現在是由伯特利爾大學(BVLC)來進行維護和更新。
由于它出現的比較早,剛開始得到了廣泛的應用,你會在許多學術論文中看到它的身影,當然由于它的高效性,它也成為許多公司和研究所的利器,可以用來進行“模型的部署”。盡管如今出現了許多強大的深度學習框架,但是caffe仍然很受歡迎,尤其是在CV領域。
在你使用了caffe之后,你會發現它非常簡單,你需要做的就是“裝載并轉換數據類型”“構建自己的Model””編寫相應的配置文件” “編寫相應的部署文件”“編寫一些額外的C++代碼”。最常用到的應該是.prototxt文件,它常被用來構建Model,配置模型參數,部署模型。
它提供了python和matlab接口。你可以借助方便的python和matlab來加速你的開發過程。pycaffe是對應的python接口,里面封裝了一些類接口,你只需要簡單的調用或者編寫一些新的類接口來擴展你自己的應用。matcaffe是matlab接口,它的接口和pycaffe很像,詳細的內容可以看我后面更新的一些博客。
caffe有cpu版本和gpu版本,你需要根據自己的情況,選擇合適的版本,本文介紹的是gpu版本。
好了,既然你知道了caffe,并且知道了它有什么用,下面就開始的配置過程吧。(知其然,更要知其所以然!)
1. 首先你需要下載caffe,你可以選擇如下的幾種方式
方式一:使用Git下載
git
clone https:
方式二:本機下載--即使用瀏覽器進行下載
方式三:使用wget
wget https:
2. 解壓當前的文件;
unzip xxx.zip
3. 重命名為caffe
mv xxx xxxx # 即將文件xxx重新命名為xxxx
4. 安裝依賴包:
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 libatlas
-base-dev
sudo apt
-get install libgflags
-dev libgoogle
-glog-dev liblmdb
-dev
5. 因為make指令只能make Makefile
.config文件,而Makefile
.config.example是caffe給出的makefile例子,因此,首先將Makefile
.config.example的內容復制到Makefile
.config
sudo
cp Makefile
.config.example Makefile
.config
6. 打開并修改配置文件
sudo gedit Makefile.config 或者 sudo vim Makefile.config
a.若使用cudnn,則將
修改成:
USE_CUDNN :=
1
b.若使用的opencv版本是
3的,則將
修改為:
OPENCV_VERSION :=
3
c.若要使用python來編寫layer,則將
修改為 WITH_PYTHON_LAYER :=
1
d.重要的一項 :
將
1 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/
local/
include
2 LIBRARY_DIRS := $(PYTHON_LIB) /usr/
local/lib /usr/lib
修改為:
1 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/
local/
include /usr/
include/hdf5/serial
2 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的位置,所以需要更改這一路徑.
注:我的建議改變
a/b/c/d四項,具體的原因你會在后續的使用中體會到。
7. 修改makefile文件
打開makefile文件,做如下修改:將
NVCCFLAGS
+=-ccbin
=$(CXX)
-Xcompiler-fPIC $(COMMON_FLAGS)
替換為:
NVCCFLAGS
+= -D_FORCE_INLINES -ccbin=$(CXX)
-Xcompiler -fPIC $(COMMON_FLAGS)
8. 編輯/usr/
local/cuda/include/host_config.h
將
#
error
改為
//#
error
9. 編譯
sudo make all -j8 或者 sudo make all -j4
注:
1)這個過程會花費很長的時間,你需要耐心等待。
2)這個過程可能會出現許多錯誤,典型錯誤及其解決方案如下所示:
問題一:
"fatal error: hdf5.h: 沒有那個文件或目錄"
解決方案:
step1:在Makefile.config文件的第
85行,添加/usr/
include/hdf5/serial/ 到 INCLUDE_DIRS,也就是把下面第一行代碼改為第二行代碼。將:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/
local/
include
替換為:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/
local/
include /usr/
include/hdf5/serial/
stept2:在Makefile文件的第
173行,把 hdf5_hl 和hdf5修改為hdf5_serial_hl 和 hdf5_serial,也就是把下面第一行代碼改為第二行代碼。
將:
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問題二:
"libcudnn.so.5 cannot open shared object file: No such file or directory"
解決方案:將一些文件復制到/usr/
local/lib文件夾下,注意自己CUDA的版本號!
1. sudo cp /usr/
local/cuda-
8.0/lib64/libcudart.so
.8.0 /usr/
local/lib/libcudart.so
.8.0 && sudo ldconfig
2. sudo cp /usr/
local/cuda-
8.0/lib64/libcublas.so
.8.0 /usr/
local/lib/libcublas.so
.8.0 && sudo ldconfig
3. sudo cp /usr/
local/cuda-
8.0/lib64/libcurand.so
.8.0 /usr/
local/lib/libcurand.so
.8.0 && sudo ldconfig
4. sudo cp /usr/
local/cuda-
8.0/lib64/libcudnn.so
.5 /usr/
local/lib/libcudnn.so
.5 && sudo ldconfig
10. 運行測試
sudo make runtest
如果出現如下結果,表示安裝成功。結果如下圖所示:
11. 測試caffe是否安裝成功
1)將終端定位到
Caffe根目錄
cd ~/caffe
2)下載
MNIST數據庫并解壓縮
./
data/mnist/get_mnist.sh3)將其轉換成
Lmdb數據庫格式
./examples/mnist/create_mnist.sh
4)訓練網絡
./examples/mnist/train_lenet.sh
訓練的時候可以看到損失與精度數值,如下圖所示:
運行的結果是:0.9914 相當高的精確度!!!
注:這期間會產生大量的輸出,包括訓練網絡和測試網絡的架構,參數信息,以及迭代次數,損失率loss和學習率lr,準確率accuracy等,你可以通過觀察這些參數來查看訓練結果。
12. 配置Pycaffe
1)安裝一些依賴包
sudo apt-get install
python-numpy
python-scipy
python-matplotlib
python-sklearn
python-skimage
python-h5py
python-protobuf
python-leveldb
python-networkx
python-nose
python-pandas
python-gflags Cython ipython
注:這里面安裝了很多有用的工具,你會在后續的開發中使用到它。
2)sudo apt-get install protobuf-c-compiler protobuf-compiler
3) 編譯依賴庫
cd ~/caffe # 切換到你的caffe安裝路徑
make pycaffe # 編譯pycaffe
4) 添加文件路徑
sudo gedit /etc/profile 或者 sudo vim /etc/profile
在文件末尾添加:export PYTHONPATH=/path/to/caffe/
python:
$PYTHONPATH
source /etc/profile # 使得配置生效
5)測試pycaffe
python
import caffe
如果沒有報錯,表明Pycaffe安裝成功!
13. 安裝Matlab
1) 下載matlab,內容包括以下三部分:其中Crack為激活的補丁包,dvd1
.iso和dvd2
.iso為分包壓縮的MATLAB鏡像文件;
```
點擊這個http://www
.linuxidc.com/Linux/
2013-
12/
93755.htm 鏈接關注 Linux公社官方微信,關注后回復數字
142290。即可得到網友的分享密碼。
如果取消關注Linux公社公眾號,即使再次關注,也將無法提供本服務!
鏈接:http://pan
.baidu.com/s/
1kUD7G9p 密碼:獲得見上面的方法,地址失效請在下面留言。
2) 將iso鏡像文件掛載到linux中,執行下面命令:
sudo mkdir /media/matlab
sudo mount -o loop [path]R2016b_glnxa64_dvd1
.iso /media/matlab
# 這里 的[path]是指iso鏡像的目錄位置3) 開始安裝MATLAB,先回到主目錄
cd ~
4) sudo /media/matlab/install
5)接下來就是安裝引導的圖像界面了
選擇Use a File Installtion Key,點擊Next;
選擇Yes,點擊Next;
選擇I have the File Installation Key for my license,然后輸入Installation Key,Installation Key可以在Crack文件夾下的readme.txt中找到;
點擊Next;
再選擇安裝自己所需的功能,然后就是半個小時到一個小時左右的等待了……進度條到
90%左右的時候,會有一個請彈出DVD1,插入DVD2的提示,因為是分了兩個iso壓縮的,按照提示彈出dvd1
.iso(只需右鍵圖標選擇彈出即可),把dvd2
.iso同前面一樣mount上去就可以了,安裝會自動繼續;安裝完成之后,在MATLAB的安裝目錄下建一個“licenses”文件夾,將Crack文件夾中的license_standalone
.lic拷貝進去(可能需要在終端sudo
cp進行拷貝),同時,將Crack/R2016b/bin文件夾覆蓋安裝目錄下的bin文件夾;
6)安裝Matlab支持包
sudo apt-get install matlab-support
注:中間可選使用這款軟件的用戶以及重命名GCC庫,我把當前用戶作為了使用這款產品的用戶
7) 激活Matlab
sudo matlab
打開Matlab,此時會提示進行激活,使用本地文件激活,選擇“licenses”文件夾中剛剛拷貝的license_standalone
.lic即可;
8)使用
matlab 或者 sudo matlab
注:參考鏈接:Linux安裝matlab
14. 配置matcaffe
1)
cd ~/caffe
2) make all matcaffe
3) 將matcaffe加入Matlab搜索路徑。在Caffe的根目錄啟動Matlab,在Matlab命令行中輸入以下指令
Addpath ./matlab
4) make mattest
注:在此之前需要你安裝好Matlab。
注:
1)由于能力有限難免出現一些錯誤,還望大家多多包涵。
2)如果有任何問題,請發消息給我,大家一起學習,一起進步。
3)由于本博客是我自己原創,如果需要轉載,請聯系我,我會及時回復大家。謝謝。
郵箱:
1575262785@qq.com
1
1
總結
以上是生活随笔為你收集整理的Linux16.04下配置Caffe,Pycaffe,matcaffe的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。