Ubuntu安装Caffe并训练MNIST

来源:互联网 发布:java开发专业技能 编辑:程序博客网 时间:2024/06/05 00:45

之前的博客,我们介绍了如何在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-compilersudo 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/caffecd Desktop/caffe/

其中需要将Makefile.config.example拷贝一份成Makefile.config,这样之后才能make。另外Makefile.config需要进行修改,去掉CPU_ONLY := 1的注释,这样Caffe就只运行在CPU上了。

cp Makefile.config.example Makefile.configmake allmake testmake 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

0 0
原创粉丝点击