一、转换mnist数据集格式(转换为lmdb/leveldb)
1. 首先下载数据文件
http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz
http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz
http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz
http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz
下载后,是如下图所示的四个文件:
2. 解压后,放置到caffe-master\data\mnist目录下。新建一个 create_mnist.bat,内容如下:
..\..\Build\x64\Release\convert_mnist_data.exe
train-images.idx3-ubyte train-labels.idx1-ubyte mnist_train_lmdb
echo.
..\..\Build\x64\Release\convert_mnist_data.exe
t10k-images.idx3-ubyte t10k-labels.idx1-ubyte mnist_test_lmdb
pause
(注意更改convert_mnist_data.exe 的路径;注意一定要把 train-images.idx3-ubyte等四个文件放到.\data\mnist根目录下)
3. 执行create_mnist.bat文件,在当前目录下生成了对应的训练和测试集数据(然后需要拷贝到..\..\examples\mnist文件下)
二、根据lenet_solver.prototxt里定义的配置参数规则进行训练
4. 打开examples\mnist目录下的lenet_solver.prototxt文件,可以看到最底下的 solver_mode: GPU这一选项,设置为CPU;
5. 打开examples\mnist目录下的lenet_train_test.prototxt文件,修改第一个和第二个layer的source为第一步生成的训练测试数据,如下图所示:
6. 在 D:\caffe-master 文件夹下新建一个train_mnist.bat :
.\Build\x64\Release\caffe.exe train --solver=.\examples\mnist\lenet_solver.prototxt
pause
文件格式如下:
若想输出训练日志到 train_mnist.log,可加如图所示的这句话:
双击train_mnist.bat 运行。
开始训练.......
训练结果如下图所示:
准确率:99.14% ,结果文件如下:
三、用mnist测试自己的图片
在此网站下载bmp格式的图片:
http://blog.csdn.net/wenhao_ir/article/details/52118751?locationNum=11&fps=1
1. 先编译”convert_imageset”项目
2. 在“examples\mnist”目录下,将准备测试的图片放入文件夹“binarybmp”,在“examples\mnist”创建测试文件“synset_words.txt”
3. 在“examples\mnist”目录下新建convert_image_data.bat(必须与binarybmp文件夹和synset_words.txt在同一目录下),内容如下图所示:
SET GLOG_logtostderr=1
E:\study_materials\Caffe\caffe-master\caffe-master\Build\x64\Release\convert_imageset.exe
binarybmp/ synset_words.txt mnist_myTest_lmdb --backend=lmdb --gray=true
pause
功能:从原始图片文件转换成caffe中能够运行的db(leveldb/lmdb)文件。
使用方法:
convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME [--backend=leveldb| lmdb]
参数:
FLAGS: 图片参数组,后面详细介绍
ROOTFOLDER/: 图片存放的绝对路径,从linux系统根目录开始
LISTFILE: 图片文件列表清单,一般为一个txt文件,一行一张图片
DB_NAME: 最终生成的db文件存放目录
双击运行后,会自动生成 mnist_myTest_lmdb文件夹
4.现在就可以测试自己的图片了,
复制“lenet_train_test.prototxt”重命名为“lenet_train_test_self.prototxt”修改如下:
5.创建test_lenet.bat,内容如下:
E:\study_materials\Caffe\caffe-master\caffe-master\Build\x64\Release\caffe.exe
test -model lenet_train_test_self.prototxt -weights lenet_iter_10000.caffemodel -iterations 100
pause
双击test_lenet.bat后,结果如下图所示:
要详细理解运行过程,可参考《深度学习:21天实战Caffe》6.2.1节 和
http://www.mamicode.com/info-detail-674889.html
补充(提取训练日志)
在http://sourceforge.net/projects/unxutils/?source=dlp下载了UnxUtils.zip,将tee.exe复制到C:Windows\system32目录下,就可以使用tee.exe在屏幕上和日志文件里面同时输出日志
只需在末尾加 2>&1 | tee test_lenet.log
运行之后就会多生成一个日志文件:test_lenet.log ,内容如下图所示: