-
下载数据集
http://yann.lecun.com/exdb/mnist/
为了简便我直接下载到你的path\caffe-master\examples\mnist
,并创建文件夹MNIST_data
,将数据解压后存放于此处,如图所示:
-
下载的原始数据集为二进制文件,需要转换为LEVELDB或LMDB格式;
存放位置:
在这里插入图片描述
convert_train_lmdb.bat:D:\Caffe\caffe-master\Build\x64\Release\convert_mnist_data.exe ^ D:\Caffe\caffe-master\examples\mnist\MNIST_data\train-images.idx3-ubyte ^ D:\Caffe\caffe-master\examples\mnist\MNIST_data\train-labels.idx1-ubyte ^ D:\Caffe\caffe-master\examples\mnist\lmdb\train_lmdb pause
convert_test_lmdb.bat:
D:\Caffe\caffe-master\Build\x64\Release\convert_mnist_data.exe ^ D:\Caffe\caffe-master\examples\mnist\MNIST_data\t10k-images.idx3-ubyte ^ D:\Caffe\caffe-master\examples\mnist\MNIST_data\t10k-labels.idx1-ubyte ^ D:\Caffe\caffe-master\examples\mnist\lmdb\test_lmdb pause
运行结束生成文件:
-
修改网络模型描述文件
lenet_train_test.prototxt:
-
修改超参数文件
lenet_solver.prototxt:
-
开始训练模型
train.bat:D:\Caffe\caffe-master\Build\x64\Release\caffe.exe train ^ -solver=D:/Caffe/caffe-master/examples/mnist/lenet_solver.prototxt pause
-
等待模型训练好,准备要测试的图片
由于我使用的GPU进行训练,所以不到一分钟大概就可以训练完成,得到如下结果:
中间需要很多次迭代…
准备的测试图片:
-
生成均值文件
mean_file.bat:%计算均值程序% %train_lmdb% %均值文件存放路径% D:\Caffe\caffe-master\Build\x64\Release\compute_image_mean.exe ^ D:\Caffe\caffe-master\examples\mnist\lmdb\train_lmdb ^ D:\Caffe\caffe-master\examples\mnist\mean_file\mean.binaryproto pause
-
准备标签
label.txt:
-
测试分类效果
mnist_classification.bat:%分类可执行程序% %网络结构% %训练好的模型% %均值文件% %标签% %要分类的图片% D:\Caffe\caffe-master\Build\x64\Release\classification.exe ^ D:\Caffe\caffe-master\examples\mnist\lenet.prototxt ^ D:\Caffe\caffe-master\examples\mnist\models\models_iter_10000.caffemodel ^ D:\Caffe\caffe-master\examples\mnist\mean_file\mean.binaryproto ^ D:\Caffe\caffe-master\examples\mnist\label\label.txt ^ D:\Caffe\caffe-master\examples\mnist\MNIST_data\0-9\5.bmp pause
运行批处理文件之后的结果:
从以上结果可以知道,最有可能的结果是5。