Caffe学习之——手写数字识别例程

上篇已完成虚拟机下Ubuntu,CPU版的Caffe的安装与编译;

在此基础上运行手写数字字体的例程。

1.mnist数据集下载;

在caffe/data/mnist目录下有get_mnist.sh脚本文件,在终端运行后会完成如下文件的下载:

将终端定位到Caffe根目录
cd ~/caffe
下载MNIST数据库并解压缩,生成四个文件
./data/mnist/get_mnist.sh

    t10k-images-idx3-ubyte
    t10k-labels-idx1-ubyte
    train-images-idx3-ubyte

    train-labels-idx1-ubyte


2.mnist数据处理;

由于下载的数据形式是二进制的文件,需要转换为leveldb或lmdb才能被Caffe识别;在Caffe根目录下执行如下命令

./examples/mnist/create_mnist.sh


在/examples/mnist/目录下生成了两个文件夹
mnist_test_lmdb
mnist_train_lmdb

3.  训练(LeNet-5模型)

首选将 lenet_solver.prototxt 文件中的
# solver mode: CPU or GPU
solver_mode: GPU
改为
# solver mode: CPU or GPU
solver_mode: CPU


然后执行
./examples/mnist/train_lenet.sh

进行训练。训练结束后会生成 lenet_iter_10000.caffemodel 权值文件。

下图是训练过程中的截图,

训练完后在examples/mnist/ 下生成模型,迭代了5000,10000次的模型。


4.测试

执行:
./build/tools/caffe.bin test \
-model examples/mnist/lenet_train_test.prototxt \
-weights examples/mnist/lenet_iter_10000.caffemodel \
-iterations 100
查看预测结果。

最终结果:
I0520 19:50:40.672024  3989 caffe.cpp:318] Loss: 0.0273101
I0520 19:50:40.672076  3989 caffe.cpp:330] accuracy = 0.9918
I0520 19:50:40.672130  3989 caffe.cpp:330] loss = 0.0273101 (* 1 = 0.0273101 loss)




参考文章:

https://www.sogou.com/link?url=hedJjaC291P3yGwc7N55kLSc2ls_Ks2xQ-VZJkYKxUiR-7eHiH8rBYmQN-lOyUWj

http://www.cnblogs.com/bigdata01/p/6886151.html