Linux下caffe框架的搭建

最近在研究深度学习,这是一种能模拟人脑进行分析学习的神经网络,其中卷积神经网络是近年飞速发展的一项技术,在图像处理等方面有广泛应用。

caffe是Berkeley Vision and Learning Center(BVLC)推出的一款基于卷积神经网络的框架。caffe使用C++开发,执行效率高,同时支持CPU和GPU运算,使用非常方便。下面来介绍下在Linux操作系统下caffe环境的搭建。

系统:Kali Linux 2.0(基于Debian 8.0)

其实在官网(http://caffe.berkeleyvision.org/install_apt.html)上说的已经非常详细了,不过有些地方还是需要修改下。

首先安装依赖:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

boost库因为网络原因我无法通过apt来安装,只能去下载源码编译安装,我用的版本是1.59的,可以去官网(http://www.boost.org/)查看下载最新的版本。
下载连接:http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.bz2/download
下载完过后首先解压解包:
bunzip2 boost_1_59_0.tar.bz2
tar xvf boost_1_59_0.tar

然后通过以下命令安装:
cd boost
./bootstrap.sh
sudo ./b2
sudo ./bjam install

继续安装其他依赖:
sudo apt-get install libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install cmake

依赖基本就安装完毕了,接下来我们要下载源码,源码可以在https://github.com/BVLC/caffe上面看到。
下载源码:git clone https://github.com/BVLC/caffe.git
然后可以按照官网上的教程(http://caffe.berkeleyvision.org/installation.html)进行编译。
进入caffe根目录,我们要设置下Makefile的配置信息:
cp Makefile.config.example Makefile.config
然后根据自己机器的情况对配置进行修改,因为我的机器没有GPU,要使用CPU_ONLY,所以要把Makefile.config中的 CPU_ONLY := 1 这一行取消注释。我的Makefile.config文件内容为:

接下来要对部分代码进行修改,以下文件里面的hdf5的头文件路径都需要修改:
include/caffe/util/hdf5.hpp
src/caffe/net.cpp
src/caffe/layers/hdf5_output_layer.cpp
include/caffe/layers/hdf5_output_layer.hpp
src/caffe/layers/hdf5_data_layer.cpp
include/caffe/layers/hdf5_data_layer.hpp
把对应的头文件分别改成以下两个:

可能有其他的文件也需要修改,可以根据make all的输出信息对相应的代码进行修改。

接下来就可以进行编译安装了:
mkdir build
cmake ..
make all
make runtest

至此,caffe框架我们就搭建完成了,接下来我们可以进行一下测试。caffe里面自带了一些example,我们选择使用mnist的数据进行训练测试。mnist是一套美国小学生的手写数字的数据集,我们可以在官网查看到关于该数据集的一些信息:http://yann.lecun.com/exdb/mnist/

caffe的官方文档中有告诉我们如何使用mnist训练集:http://caffe.berkeleyvision.org/gathered/examples/mnist.html

首先我们要准备数据集,进入caffe根目录,输入以下命令:
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh

然后根据机器修改相关配置文件:examples/mnist/lenet_solver.prototxt,使用CPU进行训练,我的solver定义如下:

最后在caffe根目录下输入以下命令即可训练mnist:
./examples/mnist/train_lenet.sh

在我的i7-3667U下,花了24分钟完成训练,效率还是非常高的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注