本次的編譯環境是在虛擬機器上的ubuntu16.04上進行的。
一、caffe的編譯
1)安裝caffe的依賴檔案
由於虛擬機器下的ubuntu系統一般不包含gpu,故這次安裝時為了在無gup環境下執行caffe。 有gpu安裝caffe與無gpu安裝caffe的區別一般就兩點:
1.安裝cuda的時候不安裝顯示卡驅動;
2.最後安裝好caffe,執行程式時,將相關配置檔案改為cpu執行模式,而不是gpu執行模式。
首先,先安裝乙個git,在這之前要進行依賴源的更新
$sudo apt-get update
然後進行git的安裝(可以使用git --version對是否安裝了git進行檢視)
$sudo apt-get install git
接著進行依賴源的安裝
$sudo apt-get install --no-install-recommends libboost-all-dev
$sudo apt-get install libatlas-base-dev
注意:這些安裝都需要ubuntu聯網的情況下才能安裝成功
進行完這些安裝之後
2)配置python
$sudo apt-get install python-dev
$sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
$ git clone
4)修改makefile.config
$ cd caffe //到caffe的根目錄下
$ mv makefile.config.example makefile.config //修改makefile檔案
//用vi編輯器開啟makefile.config,修改其中的cpu_only選項,本例子只用cpu模式,開啟該選項(去掉「#」)表示caffe編譯時僅支援cpu,不支援gpu
cpu_only :=1
5)編譯caffe
//接著進行caffe的編譯,這個過程需要一定的時間
$ cd caffe
$ make pycaffe
$ make all
$ make test
$ make runtest
注意:編譯時要把當前目錄定位到caffe根目錄下,否則會報錯
make:***no rule to make target 'pycaffe'. stop.
載入完這些命令之後沒有報錯就應該是編譯完成了。
接下執行caffe的經典例子mnist對其進行測試
編譯的時候常見的問題:
a) 配置caffe的python環境時make pycaffe提示fatal error:numpy/arrayobject.h no such file or directory時解決辦法:
sudo apt-get install python-numpy
b)make pycaffe 時出現fatal error:hdf5.h:沒有那個檔案或目錄的解決辦法:
首先在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/
然後在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
二、mnist的訓練
mnist(mixed national institute of standards and technology)是乙個大型的手寫體數字資料庫,廣泛的用於機器學習領域的訓練和測試。
$ cd caffe/data/mnist
$ ./get_mnist.sh
t10k-labels-idx1-ubyte train-labels-idx1-ubyte
t10k-images-idx3-ubyte train-images-idx3-ubyte
2) 轉換格式
在caffe根目錄下執行
./examples/mnist/create_mnist.sh
creating lmdb
done.
接下來就可以進行訓練了
3) 訓練選用的是mnist資料集的lenet模型,在examples/mnist下可以看到lenet的相關資訊 執行
$ ./examples/mnist/train_lenet.sh
即可開始訓練,收斂過程很漫長。
注意:如果無法正常開始訓練那麼需要進入到examples/mnist/lenet_solver.prototxt 中
將最後一項solver_mode的gpu改為cpu 後
再執行 examples/mnist/train_lenet.sh 就可以正常訓練了
caffe編譯關於protobuf錯誤的解決辦法
問題 當主機上裝了tensorflow和anaconda時,再去編譯caffe就會遇到關於protobuf的錯誤。原因 系統使用的protoc是anaconda下的,一般版本是3.6 通過後面命令檢視 protoc version which protoc 而編譯caffe需要的protoc版本需要...
微軟Caffe編譯
3 使用vs2013開啟caffe.sln編譯自動安裝第三方庫。安裝過程中可能出現的錯誤 e nugetpackages boost.1.59.0.0 lib native include boost format alt sstream impl.hpp error c2220 警告被視為錯誤 沒...
caffe編譯問題
1.編譯提示一系列cudnn問題,caffe版本過舊,與新版cudnn不相容。解決 可嘗試替換 caffe root include caffe util cudnn.hpp以及 caffe root src caffe layers下面名字以cudnn開頭的檔案為最新版caffe內的檔案,最新版c...