caffe的mnist小练习
这是一个手写数字分类的小练习,训练集是一些带标签的手写数字,测试集是一些手写数字,目的是将这些手写数字准确地分到对应的类中。
1.数据准备
下载数据:找到caffe/data/mnist文件夹,运行文件
接着出现:
运行完毕后有四个文件:
数据转换:将文件数据转化为lmdb:
注意此时要在caffe根目录下加权限运行,否则可能无法执行:
接着在examples/mnist里面就出现了mnist_test_lmdb和mnist_train_lmdb两个文件
这就是数据集了。
2.网络结构:
这里是LeNet的网络结构,可以将examples/mnist/lenet_train_test.prototxt.的内容放到 Netscope(http://ethereon.github.io/netscope/#/editor)里面查看
网络结构:
可视化的网络结构,还可以直接观察到每一层的参数,这是一个简单的神经网络结构,从上到下,数据集,接着卷积层--池化层---卷积层---池化层---全连接层innerproduct+relu--innerproduct----最后计算loss,用softmax分到类中
3.训练参数
examples/mnist/lenet_solver.prototxt
建立model文件夹并修改lenet_solver.prototxt 中的snapshot_prefix
4.训练网络
这时候就可以通过运行 train_lenet.sh脚本来训练网络了
在caffe根目录下输入
接着就开始初始化网络:
create mnist layer
接着创建系列的网络层:
创建完成:
接着创建训练网络:
开始优化网络:
接着开始迭代训练:
第 5000次迭代后,建立了个model存在设置的目录下
在10000次迭代后,同样建立model,且训练停止:
最终的accuracy:0.9909,loss:0.0263691
5.测试模型:
调用训练好的模型进行测试
caffe根目录下:用gpu的话:/caffe$ ./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/model/lenet_iter_10000.caffemodel -gpu=0
否则:/caffe$ ./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/model/lenet_iter_10000.caffemodel
接着就看到结果:
使用10000次迭代后的模型进行测试的结果。
note:作为小白,该文档仅供参考,也作为自己练习的记录,有不对的地方请指正,更多信息参考caffe官网。
给自己加油~~~~~
版权声明:本文原创,转载请注明出处!
http://blog.****.net/u012581616/article/details/79557517