Windows7+VS2013 MNIST数据集训练与测试

时间:2021-11-23 20:30:16
上一篇:Windows7+VS2013+Python2.7+OpenCV2.4.10-caffe框架搭建(无GPU),已经完成了在Windows下Caffe框架的搭建,这一篇主要利用已搭建好的Caffe框架,对Caffe中一个现成的例子进行训练与测试,以了解用Caffe框架进行神经网络训练与测试的流程。
本篇主要参考:http://www.cnblogs.com/yixuan-xu/p/5858595.html
http://www.cnblogs.com/yixuan-xu/p/5862657.html
再次重申一次:
为了叙述方便,综述一下我安装软件的地址,在下面的过程中,为了理解方便,直接上地址。
情况如下:我在D盘新建了一个名为OCaffe文件夹,将所有与caffe有关的文件包括安装包什么的,都放到了D:\OCaffe下。
caffe地址:D:\OCaffe\caffe-master
一.数据集准备:
MNIST是一个手写数字(0 - 9)数据库,它有60000个训练样本集和10000个测试样本集,在网上下载MNIST数据集,链接如下:http://yann.lecun.com/exdb/mnist,而这种类型的文件Caffe不能直接使用,Caffe读取的图片格式是lmdb或leveldb。以下分享一个已转换为leveldb格式的mnist数据集,为了更好区分,原版MNIST数据集用大写字母表示,已转换为leveldb格式的mnist数据集用小写字母表示,网盘链接如下:
https://pan.baidu.com/s/1skCG0Mx 密码:wsqq
二.前期准备:
1.  将下载好的mnist数据集放到,如下地址:D:\OCaffe\caffe-master\caffe-master\examples\mnist。如下图所示:Windows7+VS2013 MNIST数据集训练与测试

2.  修改配置文件:
a.  由于Caffe默认设置有GPU加速,所以需要将目录:D:\OCaffe\caffe-master\caffe-master\examples\mnist下的lenet_solver.prototxt中最后一行改为solver_mode:CPU,.PROTOTXT文件直接用VS就可以打开。
    b.  接下来需要将目录:D:\OCaffe\caffe-master\caffe-master\examples\mnist下的lenet_train_test.prototxt文件进行修改,以指定训练集与测试集的路径与格式,按照下图左侧显示绿色标记的部分修改即可:
Windows7+VS2013 MNIST数据集训练与测试

三.对mnist数据集进行训练:
本篇对mnist数据集进行训练与测试并没有用到Python,直接编写一个bat批处理脚本即可,具体如下,在目录:D:\OCaffe\caffe-master\caffe-master下新建一个run.txt文件,输入以下内容:Build\x64\Release\caffe.exetrain --solver=examples/mnist/lenet_solver.prototxt(注意:这里有一个换行,然后再写pause)pause。完成后,将文件的扩展名改为.bat,双击run.bat文件,神经网络就会自动进行训练。以下为训练的一个截图:Windows7+VS2013 MNIST数据集训练与测试

在单CPU模式下,让电脑进行了再次训练,其中一次用一个半小时,而另一次只用了20分钟,结果如下:至今想不通是何种原因。。
Windows7+VS2013 MNIST数据集训练与测试

此时在目录:D:\OCaffe\caffe-master\caffe-master\examples\mnist下,会发现多了4个文件,如下图所示:
Windows7+VS2013 MNIST数据集训练与测试

四.生成mnist训练集的均值文件:
普遍认为,mnist测试集的图片,如果分别减去所有mnist训练集的均值文件,则分类效果会更好,所以在对mnist数据集进行测试之前,需要生成均值文件,具体如下:
在目录:D:\OCaffe\caffe-master\caffe-master下新建一个mnist_mean.txt文件,输入以下内容:D:\OCaffe\caffe-master\caffe-master\Build\x64\Release\compute_image_mean.exeexamples\mnist\mnist_train_leveldb mean.binaryproto --backend=leveldb (注意:这里有一个换行,然后再写pause) pause 完成后,将文件的扩展名改为.bat,双击mnist_mean.bat文件,则会发现在路径:D:\OCaffe\caffe-master\caffe-master下,多了一个新的文件mean.binaryproto ,这就是我们在测试时需要的均值文件。
五.对mnist数据集进行测试:
完成了对mnist数据集的训练,我们就可以利用训练好的网络来对数据集进行测试,使用Caffe的优点是:易于上手,小白时你不用写任何与网络有关的代码就可以轻松实现一个网络。
为了使用均值文件,需要对D:\OCaffe\caffe-master\caffe-master\examples\mnist下的lenet_train_test.prototxt文件进行一下更改,具体如下图行左侧标记为绿色的部分:
Windows7+VS2013 MNIST数据集训练与测试

下面要做的就是,写一个批处理文件来对mnist测试集进行测试,具体如下:在D:\OCaffe\caffe-master\caffe-master下,新建一个mnist_test.txt文件,输入以下内容:D:\OCaffe\caffe-master\caffe-master\Build\x64\Release\caffe.exetest --model=examples\mnist\lenet_train_test.prototxt--weights=examples\mnist\lenet_iter_10000.caffemodel (注意:这里有一个换行,然后再写pause) pause 完成后,将文件的扩展名改为.bat,双击mnist_test.bat文件,则自动对mnist数据集进行测试。结果如下:
Windows7+VS2013 MNIST数据集训练与测试

单看这个精度与损失感觉网络训练的也不是很好,也正是这个原因,在以后的训练要学会自己调参、调网络的结构,以提高精度。
本篇主要是将Caffe中一个现成的例子mnist数据集进行训练与测试,最后的实现是通过.bat批处理文件,鉴于以后的需要,在下一篇中,将考虑用Caffe提供的Python接口来进行训练。。