mnist是一个手写数字库,现在成了DL的入门练习库。征对mnist识别的专门模型是Lenet,算是最早的cnn模型了。
mnist数据训练样本为60000张,测试样本为10000张,每个样本为28*28大小的黑白图片,手写数字为0-9,因此分为10类。(ps:在caffe中运行所有程序,都必须在根目录下进行,否则会出错)
首先下载mnist数据,假设当前路径为caffe根目录
./data/mnist/get_mnist.sh
包含两个训练集和两个测试集,分别是图片和标签
./examples/mnist/create_mnist.sh
下载到的原始数据集是二进制文件,需要转换为levelDB或LMDB才可以被Caffe使用。这是因为数据类型太多样化,用一套代码处理所有类型的输入数据比较繁琐,转换格式后可以简化数据读取,另外一方面是用levelDB或LMDB可以提高磁盘IO利用率
众所周知,深度神经网络中比较难的一点就是调参,这个需要一点的工作量和经验,所以这里用默认参数。看一下参数设置
./examples/mnist/train_lenet.sh
开始训练,Caffe目前貌似支持单机多卡,我的机器上装有4张K80(一张卡上有两个芯片),但是只用了一个芯片
训练用时4分钟。
./build/tools/caffe.bin test -model examples/mnist/lenet_train_test.prototxt -weights examples/mnist/lenet_iter_10000.caffemodel -iterations 100
对训练好的模型进行测试,很快结束,准确率99%,用时30秒左右。