Ubuntu安裝Caffe並訓練MNIST

之前的博客,我們介紹瞭如何在Mac下安裝Caffe並訓練MNIST,但是在Mac下有很多不方便的地方,今天介紹一下如何在Ubuntu下安裝Caffe並且訓練MNIST。

當然,第一手的資料同樣來自於Caffe官網,Ubuntu版本是16.04,Caffe是CPU-ONLY的版本。

Caffe安裝

通過下面的命令安裝protobuf,leveldb,snappy,opencv,hdf5,boost依賴庫,其中最需要注意的是hdf5

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

接着安裝BLAS庫,

sudo apt-get install libatlas-base-dev

之後是gflags,glog和lmdb,

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

如果不出意外的話,上面多個依賴庫安裝都非常順利,讓人有點懷疑,但是裏面hdf5這個庫有個坑,之後會提到。

用如下命令將Caffe源碼克隆到桌面,路徑是’Desktop/caffe/’,爲了方便將Caffe主路徑用$CAFFE_ROOT代替,

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

其中需要將Makefile.config.example拷貝一份成Makefile.config,這樣之後才能make。另外Makefile.config需要進行修改,去掉CPU_ONLY := 1的註釋,這樣Caffe就只運行在CPU上了。

cp Makefile.config.example Makefile.config
make all
make test
make runtest

在make all這一步遇到了一些問題,首先是找不到hdf5.h,在Makefile.config中INCLUDE_DIRS後添加/usr/include/hdf5/serial即可繼續編譯。

src/caffe/layers/hdf5_data_layer.cpp:13:18: fatal error: hdf5.h: No such file or directory

但是此後又出現如下問題,

/usr/bin/ld: cannot find -lhdf5_hl
/usr/bin/ld: cannot find -lhdf5

可以在LIBRARY_DIRS後添加/usr/lib/x86_64-linux-gnu/hdf5/serial/,最終Makefile.config文件對應部分修改如下,

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/hdf5/serial/

以上的操作保證Caffe編譯過程中可以找到hdf5的頭文件和共享庫文件。

最終的make runtest可以看到如下圖的結果,保證Caffe安裝成功,

runtest

MNIST訓練

之前將Caffe的環境搭好了,現在用MNIST這個數據集進行測試,繼續在$CAFFE_ROOT下進行操作。

./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh

經過上述操作./examples/mnist/路徑下會有mnist_test_lmdb和mnist_train_lmdb兩個文件夾,分別是測試和訓練數據。

在最終訓練之前需要修改./examples/mnist/lenet_solver.prototxt最後一句話爲,

solver_mode: CPU

這樣保證整個訓練過程在CPU上進行,最後執行訓練命令,

cd $CAFFE_ROOT
./examples/mnist/train_lenet.sh

看到如下效果,

result

一共迭代10000次,準確率爲0.9915,最後訓練的model爲./examples/mnist/lenet_iter_10000.caffemodel。

https://groups.google.com/forum/#!topic/caffe-users/cdyqjNpoFRY
https://github.com/BVLC/caffe/issues/2690

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章