Caffe学习(2) Mnist的测试

MNIST,一个经典的手写数字的图像数字库,由纽约大学的Yann LeCun教授整理,包含60000个训练样本和10000个测试样本,图片大小为28*28,在Caffe上配置的第一个案例。用的网络模型是LeNet,它是公认在数字分类任务上效果很好的网络。实验中在原始 LeNet基础上做了一点改动,对于神经元的激活,用ReLU替换了sigmoid。

参考文章:

http://blog.csdn.net/lynnandwei/article/details/43273077

http://blog.csdn.net/fly_egg/article/details/53309256

http://blog.csdn.net/u013534498/article/details/51340396


1首先,获取minist的数据包。

cd $CAFFE_ROOT
./data/mnist/get_mnist.sh

然后

./examples/mnist/create_mnist.sh

利用caffe-master/build/examples/mnist/的convert_mnist_data.bin工具,将mnist date转化为可用的lmdb格式的文件。并将新生成的2个文件mnist-train-lmdb 和 mnist-test-lmdb放于create_mnist.sh同目录下。

当然,也可以根据需要用它生成leveldb格式的文件,只需要修改BACKEND=“leveldb”即可,目前所学到的有这两种常用的格式。


2.然后是训练部分

一个caffe的工程主要包含两个部分:网络模型,参数配置,分别对应*.prototxt ,*_solver.prototxt文件。
在该文件中定义了一些与模型训练有关的参数,包括初始学习率、momentum、权重衰减系数、最大迭代数、模型生成路径(snapshot_prefix)、使用cpu还是gpu等参数。可根据需要进行修改。

如果没有GPU,只有CPU的话,需要先修改examples/mnist目录下lenet_solver.prototxt文件,将solver_mode:GPU 改为 solver_mode:CPU

然后

./examples/mnist/train_lenet.sh

由于不知道是硬件菜还是only CPU的原因,训练十分慢(15min)……

训练完生成四个文件

lenet_iter_10000.caffemodel         lenet_iter_10000.solverstate      lenet_iter_5000.caffemodel         lenet_iter_5000.solverstate

其中两个caffemodel文件lenet_iter_5000.caffemodel与lenet_iter_10000.caffemodel为我们测试时所需要的,它们分别存放着程序迭代5000次与10000次后网络的参数。


3.使用模型进行测试

caffe有三种编译方式 命令行、python、matlab.这里使用的是命令行的方法

/build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_10000.caffemodel

test:表示对训练好的模型进行Testing,而不是training。其他参数包括train, time, device_query。

-model=XXX:指定模型prototxt文件.

GPU的话需要在后面加上 -gpu=0

或者是编写脚本,cd到 ./caffe/examples/mnist

touch test_lenet.sh #生成.sh文件
sudo vim test_lenet.sh
 #进入.sh文件键入内容
#键入的内容为
#!/usr/bin/env
 sh
"空行"
./build/tools/caffe test --model=examples/mnist/lenet_train_test.prototxt --weights=examples/mnist/lenet_iter_10000.caffemodel
 -iterations 100
然后返回CAFFE_ROOT
sudo sh ./examples/mnist/test_lenet.sh

最后的话应该会输出

I1111 21:11:52.804616  5582 caffe.cpp:330] accuracy = 0.9868
I1111 21:11:52.804626  5582 caffe.cpp:330] loss = 0.0417311 (* 1 = 0.0417311 loss)

你可能感兴趣的:(Deep,Learning,Caffe)