MNIST是一个经典的手写数字的图像数字库,由纽约大学的Yann LeCun教授整理,包含60000个训练样本和10000个测试样本,图片大小是28*28,是在Caffe上配置的第一个案例,本篇用来测试caffe是否能正常运行,以及学习第一个深度神经网络模型
获取mnist训练数据
在/data/mnist文件夹中会获得下载的数据;
cd CAFFE_ROOT
./data/mnist/get_mnist.sh
然后就出了问题,-bash: ./data/mnist/get_mnist.sh 权限不够。因为这个脚本还没有执行权限,所以先给它加上执行权限:
chmod +x ./data/mnist/get_mnist.sh
再执行~/caffe-master$ ./data/mnist/get_mnist.sh,就出现了开始执行的命令行:
Downloading…
生成lmdb文件
./examples/mnist/create_mnist.sh
然后在/example/mnist/中,如果运行无误的话就会生成两个文件mnist_train_lmdb和mnist_test_lmdb,转换为caffe所需要处理的lmdb格式,当然,也可以根据需要用它生成leveldb格式的文件,只需要修改BACKEND=“leveldb”即可,目前所学到的有这两种常用的格式。
一个caffe的工程主要包含两个部分:网络模型,参数配置,分别对应*.prototxt ,*_solver.prototxt文件。
在该文件中定义了一些与模型训练有关的参数,包括初始学习率、momentum、权重衰减系数、最大迭代数、使用cpu还是gpu等参数。可根据需要进行修改。
训练
打开文件:caffe/examples/mnist/lenet_solver.prototxt,由于我使用的是CPU模式,将其中最后一行的GPU改为CPU。
./examples/mnist/train_lenet.sh
运行完结果如下:
生成四个文件
lenet_iter_10000.caffemodel 10000次的模型文件
lenet_iter_10000.solverstate
lenet_iter_5000.caffemodel 5000次的模型文件 lenet_iter_5000.solverstate
屏幕显示每次
I0126 17:32:32.171516 18290 solver.cpp:246] Iteration 10000, loss = 0.00453533
I0126 17:32:32.171550 18290 solver.cpp:264] Iteration 10000, Testing net (#0)
I0126 17:32:40.498195 18290 solver.cpp:315] Test net output #0: accuracy = 0.9903
I0126 17:32:40.498236 18290 solver.cpp:315] Test net output #1: loss = 0.0309918 (* 1 = 0.0309918 loss)
I0126 17:32:40.498245 18290 solver.cpp:251] Optimization Done.
I0126 17:32:40.498249 18290 caffe.cpp:121] Optimization Done.
初步运行成功,具体模型的细节还需要继续研究
相关博客:
http://www.cnblogs.com/xiaopanlyu/p/5793280.html
参考文献:
http://blog.sina.com.cn/s/blog_78fd98af0102w5m6.html
http://m.blog.youkuaiyun.com/article/details?id=44984485