1,下载mnist所需的所有数据
mnist数据集http://yann.lecun.com/exdb/mnist/,这里需要注意的是caffe并不直接通过下载得到的四个文件进行训练,而是会把它转化为lmdb或leveldb格式进行读取。lmdb是lightning(闪电的) memory-mapped database manager的缩写,能够把原始数据通过更为高效的存储方式存储,从而加快读取和训练速度(lmdb比leveldb更快,可以看看刚刚的NugetPackages文件夹,当中就包含着对应的库)。
实现这个转化的代码是\examples\mnist的convert_mnist_data.cpp,但也没必要看,因为它的运行脚本create_mnist.sh显然是linux下的东西。想了想也可以理解,毕竟caffe本来也不支持windows,能移植过来就不错了,也不能指望大牛们把所有例子的代码都一并移植过来。目前更很好的办法就是直接网盘下载,这里分享一个
链接: https://pan.baidu.com/s/1i44s1JB 密码: ewi8
2,将下载下来的文件夹中的mnist_train_leveldb和mnist_test_leveldb两个文件夹复制到caffe-master\examples\mnist文件夹下
3,修改配置文件。
mnist目录下prototxt扩展名的都是配置文件。我们需要修改lenet_solver.prototxt,用vs2013打开,定位到最后一行:solver_mode: GPU,将GPU改为CPU。
另外需要修改 lenet_train_test.prototxt文件的第14,16,31,33行
4,编写bat脚本
在caffe-master根目录下新建一个train_mnist.txt并写入如下内容:
- .\Build\x64\Release\caffe.exe train --solver=examples/mnist/lenet_solver.prototxt
- pause
当迭代次数达到lenet_solver.prototxt定义的max_iter时,就可以认为训练结束了。并且最终会在目录\examples\mnist下产生训练出的模型(文件后缀名为caffemodel和solverstate),如下图所示:
5,用标准数据集测试模型
按上一步骤生成test_mnist.bat,内容如下:
.\Build\x64\Release\caffe.exe test--model=examples/mnist/lenet_train_test.prototxt -weights=examples\mnist\lenet_iter_10000.caffemodel
pause
双击运行,结果如下:
6,用自己的图片测试此模型:
(1)用Windows的画图工具自己手写一张图片(需为28*28像素的灰度图像):
为了方便直接调整写的数字的大小,如果你这里不调整大小,在matlab里面有相关的resize函数,自己查询调用方法,很简单
如下所示: