详细说明可参考网页:http://blog.csdn.net/wangchuansnnu/article/details/44341753
http://blog.sina.com.cn/s/blog_49ea41a20102w4uu.html
http://www.cnblogs.com/yymn/p/4553671.html
caffe 下 mnist 进行实验:
MNIST,一个经典的手写数字库,包含60000个训练样本和10000个测试样本,图片大小28*28
均在 caffe根目录下执行
1.下载数据:sudo sh ./data/mnist/get_mnist.sh
2.生成lmdb文件:sudo sh ./examples/mnist/create_mnist.sh
此时在当前文件目录下生成 mnist_train_lmdb, mnist_test_lmdb 文件
3.配置网络: letNet网络的定义
在 ./examples/mnist/lenet_train_test_prototxt文件中,可直接打开编辑
sudogedit ./examples/mnist/lenet_train_test_prototxt
本文不修改lenet_train_test_prototxt直接调用,即不改变网络的结构。
4.运行 ./examples/mnist/train_lenet.sh
sudo sh ./examples/mnist/train_lenet.sh 这是训练网络的程序
查看train_lenet.sh ,可用 sudo gedit ./examples/mnist/train_lenet.sh查看
#!/usr/bin/env sh
./build/tools/caffe train--solver=examples/mnist/lenet_solver.prototxt
可发现上述执行的是examples/mnist/lenet_solver.prototxt,其实使用的是在lenet_solver.prototxt中定义的解决方案。
查看lent_solver.prototxt可知,这个是训练网络的参数设置,比如学习率,显示结果参数,是否采用CPU 或者GPU等
本文不修改letnet_solver.prototxt ,即采用默认的解决方案。
5.测试数据集
有三种接口可以进行测试数据,命令行、Python、MATLAB,本例中采用命令行进行测试,在
/examples/mnist路径下,执行:
sudo sh ./examples/mnist/test_lenent.sh
下面是test_lenet.sh的内容
./build/tools/caffe test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_10000.caffemodel -gpu=0 test:表示对训练好的模型进行Testing,而不是training。其他参数包括train,time, device_query。
-model=XXX:指定模型prototxt文件,这是一个文本文件,详细描述了网络结构和数据集信息。
注意:test_lenent.sh脚本是根据train_lenet.sh脚本对照改写的。
下面给出MNIST结构网络的图示,(转载)