Ubuntu14+OpenCV3.1+Caffe虚拟机安装笔记(三)

3. 安装Caffe
参考http://caffe.berkeleyvision.org/install_apt.html
http://blog.csdn.net/hjimce/article/details/48781693
Caffe的模型网站:https://github.com/BVLC/caffe/wiki/Model-Zoo

Step 1: 准备工作

Step1.1 安装依赖包
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

Step1.2 安装BLAS–一种Caffe加速工具
sudo apt-get install libopenblas-dev

Step1.3安装Python开发环境(可选)
sudo apt-get install python-dev

Step1.4安装其他依赖包
$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

Step1.5查看OpenCV版本
$ pkg-config –modversion opencv
3.1.0

Step 2: 编译

Step2.1: make编译–不推荐用这种办法,用cmake更佳,即使Step2.2
参考:http://caffe.berkeleyvision.org/installation.html#compilation

编译caffe本身

cd/opt/caffemaster cp Makefile.config.example Makefile.config

Adjust Makefile.config (for example, if using Anaconda Python, or if cuDNN is desired)

$ make all
PROTOC src/caffe/proto/caffe.proto
CXX .build_release/src/caffe/proto/caffe.pb.cc
CXX src/caffe/internal_thread.cpp
In file included from ./include/caffe/common.hpp:19:0,
from ./include/caffe/internal_thread.hpp:4,
from src/caffe/internal_thread.cpp:4:
./include/caffe/util/device_alternate.hpp:34:23: fatal error: cublas_v2.h: No such file or directory

#include

编译Python接口

protocsrc/caffe/proto/caffe.protocppout=. mkdir include/caffe/proto
mvsrc/caffe/proto/caffe.pb.hinclude/caffe/proto make pycaffe -j8

CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp
python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: No such file or directory

include

指定库的路径

echo"exportLDLIBRARYPATH=/usr/local/lib: {LD_LIBRARY_PATH}” >> ~/.bashrc
$ source ~/.bashrc

否则在编译的时候要指定库的路径
$ gcc -o test_blob test_blob.cpp -D CPU_ONLY -L /usr/local/lib -lcaffe -lstdc++ -lglog
报错:
//usr/lib/liblapack.so.3: undefined reference to ATL_sspr2'
//usr/lib/liblapack.so.3: undefined reference to
ATL_chbmv’
//usr/lib/liblapack.so.3: undefined reference to `ATL_zhemv’
。。。。。。

解决方法:
$ sudo apt-get -y install \
libatlas-dev \
libatlas3-base \
libatlas3gf-base \
libatlas-base-dev \
liblapack-dev

在.bashrc文件末尾加入:
export PYTHONPATH=/usr/local/caffe/python:/usr/local/caffe/python/caffe/

Step 3: 测试

Step 3.1: mnist
mnist是一个手写数字库,由DL大牛Yan LeCun进行维护。mnist最初用于支票上的手写数字识别, 现在成了DL的入门练习库。征对mnist识别的专门模型是Lenet,算是最早的cnn模型了。
mnist数据训练样本为60000张,测试样本为10000张,每个样本为28*28大小的黑白图片,手写数字为0-9,因此分为10类。

cd/opt/caffemaster sh data/mnist/get_mnist.sh #下载minst的4个数据文件
运行成功后,在 data/mnist/目录下有四个文件:
train-images-idx3-ubyte: 训练集样本 (9912422 bytes)
train-labels-idx1-ubyte: 训练集对应标注 (28881 bytes)
t10k-images-idx3-ubyte: 测试集图片 (1648877 bytes)
t10k-labels-idx1-ubyte: 测试集对应标注 (4542 bytes)

$ sh examples/mnist/create_mnist.sh #调用convert_mnist_data.cpp(另于一个重要的转换数据工具是convert_imageset.cpp), 把数据转化成lmdb格式。
如果想得到leveldb数据,请运行 examples/siamese/ 文件夹下面的程序。 examples/mnist/ 文件夹是运行lmdb数据
转换成功后,会在 examples/mnist/目录下,生成两个文件夹,分别是mnist_train_lmdb和mnist_test_lmdb,里面存放的data.mdb和lock.mdb,就是我们需要的运行数据。

$ gedit examples/mnist/lenet_solver.prototxt
把solver_mode 改为 CPU。

$ ./examples/mnist/train_lenet.sh

Step 3.2: cifar10
参考:http://www.cnblogs.com/denny402/p/5075490.html
cifar10数据训练样本50000张,测试样本10000张,每张为32*32的彩色三通道图片,共分为10类。

下载数据:

cd/opt/caffemaster sudo sh data/cifar10/get_cifar10.sh
直接运行这个脚本速度特慢,用迅雷直接下载http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz,放到 /opt/caffe-master/data/cifar10下,并解压,出来一大堆bin文件。

转换数据格式为lmdb:

$ sh examples/cifar10/create_cifar10.sh
转换成功后,会在 examples/cifar10/文件夹下生成两个文件夹,cifar10_train_lmdb和cifar10_test_lmdb, 里面的文件就是我们需要的文件。

为了节省时间, 进行快速训练(train_quick), 训练分为两个阶段,第一个阶段(迭代4000次)调用配置文件cifar10_quick_solver.prototxt, 学习率(base_lr)为0.001。
第二阶段(迭代1000次)调用配置文件cifar10_quick_solver_lr1.prototxt, 学习率(base_lr)为0.0001。
前后两个配置文件就是学习率(base_lr)和最大迭代次数(max_iter)不一样,其它都是一样。如果你对配置文件比较熟悉以后,实际上是可以将两个配置文件合二为一的,设置lr_policy为multistep就可以了。

base_lr: 0.001
momentum: 0.9
weight_decay: 0.004
lr_policy: “multistep”
gamma: 0.1
stepvalue: 4000
stepvalue: 5000
由于没有配置GPU,因此在《examples/cifar10/cifar10_quick_solver.prototxt》和《examples/cifar10/cifar10_quick_solver_lr1.prototxt》文件中,最后一行,设为solver_mode: CPU

训练数据:

$ sudo time sh examples/cifar10/train_quick.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值