测试Caffe,Training LeNet on MNIST with Caffe
标签(空格分隔): vision
安装Caffe以后,测试一下。当然最好是用一个大家都在用的例子测试一下。
本文参考Caffe自己的说明。
准备数据集Prepare Datasets
Caffe自带一些脚本从网上下载一些标准的库,如mnist。假设CAFFE_ROOT是安装CAFFE的根目录(对我来说就是解压caffe_master.zip后的caffe_master目录)。执行如下脚本,下载数据集,并转换成Caffe所用的数据格式。
cd $CAFFE_ROOT
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
执行成功,应该能找到这个文件夹mnist_train_lmdb:
find . -name mnist_train_lmdb
文件夹在./examples/mnist/mnist_train_lmdb,里面有两个貌似是数据文件。
定义深度学习网络 LeNet
其实LeNet历史比较悠久了,现在才得到大家的重视。
Caffe使用了Google Protobuf来定义深度学习网络结构。我也没有具体看这个是什么,因为根本就看不了。不过只要你了解深层神经网络,结合Caffe给出的例子可以比较容易理解。Caffe使用的定义可以参见这个文件$CAFFE_ROOT/src/caffe/proto/caffe.proto。
Caffe自己的说明里详细描述了如何构造一个网络,这里就不详述了。
写完这个学习网络的定义以后,形成的文件就是学习网络结构例子文件:$CAFFE_ROOT/examples/mnist/lenet_train_test.prototxt。
定义问题解决器 ( 优化问题解决器)Define the MNIST Solver
例子文件:$CAFFE_ROOT/examples/mnist/lenet_solver.prototxt。
现在还没有GPU,只有CPU,所以把文件改一下,把GPU改成CPU。
vi examples/mnist/lenet_solver.prototxt
开始运行
./examples/mnist/train_lenet.sh | tee res.out
结果:我的AMD机器用了24分钟。
I0522 19:10 开始运行
I0522 19:34:17.809156] Test net output #0: accuracy = 0.9912
I0522 19:34:17.809249] Test net output #1: loss = 0.027
I0522 19:34:17.809268 32395 solver.cpp:257] Optimization Done.