caffe给了很多examples,在caffe-master/examples文件夹下。而其中最流行的入门级例程,估计就是手写数字识别了。
首先,上一篇博文,配置caffe-windows环境,编译解决方案caffe成功后,会在caffe-master\Bulid\x64\Release目录下生成对应的.exe执行文件,不仅仅有caffe.exe,还有convert_mnist_data.exe等转换数据要用到的可执行文件。
一、下载mnist数据集
mnist是一个大型的手写数字数据库,广泛应用于机器学习领域的训练和测试,由纽约大学Yann LeCun教授整理。
mnist数据集下载地址,下载后得到四个文件,其文件解释如下:
train-images-idx3-ubyte.gz 训练集图片 - 55000 张 训练图片, 5000 张 验证图片
train-labels-idx1-ubyte.gz 训练集图片对应的数字标
t10k-images-idx3-ubyte.gz 测试集图片 - 10000 张 图片
t10k-labels-idx1-ubyte.gz 测试集图片对应的数字标签
请注意:下载后的.gz文件,一定要分别解压,得到train-images.idx3-ubyte train-labels.idx1-ubyte t10k-images.idx3-ubyte t10k-labels.idx1-ubyte 四个文件,会发现文件名有稍许变化。这个稍不注意,后面就是个坑啊。
二、转换 训练\测试数据
下载并解压得到的四个文件,并不能够直接用来训练和测试,需要转换成caffe所支持的leveldb或lmdb文件。
1、把解压的四个文件放到caffe-master\examples\mnist\mnist_data文件夹下
2、在caffe-master文件夹下,新建一个convert-mnist-data-train.txt文件,并添加如下代码,添加完成后,再将后缀名改为.bat
Build\x64\Release\convert_mnist_data.exe --backend=lmdb examples\mnist\mnist_data\train-images.idx3-ubyte examples\mnist\mnist_data\train-labels.idx1-ubyte examples\mnist\mnist_data\mnist_train_lmdb
pause
3、在caffe-master文件夹下,新建一个convert-mnist-data-test.txt文件,并添加如下代码,添加完成后,再将后缀名改为.bat
Build\x64\Release\convert_mnist_data.exe --backend=lmdb examples\mnist\mnist_data\t10k-images.idx3-ubyte examples\mnist\mnist_data\t10k-labels.idx1-ubyte examples\mnist\mnist_data\mnist_test_lmdb
Pause
其中--backend=lmdb 表示转换为lmdb格式,若要转换为leveldb将其改写为--backend=leveldb 即可。
4、分别双击运行.bat文件即可进行数据的转换。
三、进行训练和测试
1、将上一步得到的mnist_test_lmdb 和 mnist_train_lmdb文件夹放入到 caffe-master\examples\mnist目录中。
2、在caffe-master目录下新建一个run.txt文件,并输添加以下代码,添加完成后,再将后缀名改为.bat
Build\x64\Release\caffe.exe train --solver=examples/mnist/lenet_solver.prototxt
pause
3、双击即可运行run.bat文件,如果caffe正确配置,应该会运行成功。之后,会在caffe-master\examples\mnist目录下生成lenet_iter_5000.caffemodel lenet_iter_5000.solverstate lenet_iter_10000.caffemodel lenet_iter_10000.solverstate 四个文件。
四、用训练好的模型对数据进行预测
1、在caffe-master\examples\mnist目录下,新建一个mnist_test.txt文件,并添加如下代码,添加完成后,再将后缀名改为.bat
E:\NotFineshed\caffeWin10\caffe-master\Build\x64\Release\caffe.exe test -model=E:/NotFineshed/caffeWin10/caffe-master/examples/mnist/lenet_train_test.prototxt -weights=E:/NotFineshed/caffeWin10/caffe-master/examples/mnist/lenet_iter_10000.caffemodel -gpu=0 -iterations 100
pause
2、双击运行
mnist_test.bat文件即可运行。
得到的结果如下:
I0110 17:06:48.714563 368 caffe.cpp:326] accuracy = 0.991
I0110 17:06:48.715566 368 caffe.cpp:326] loss = 0.0274817 (* 1 = 0.0274817 loss)