在上一篇中,费了九牛二虎之力总算是把Caffe编译通过了,现在我们可以借助mnist数据集,测试下Caffe的训练和检测效果。

准备工作:在自己的工作目录下,新建一个文件夹,命名为mnist_test(根据自己的习惯设定)。同时,建议大家安装文本编辑神器Notepad++,用它来编辑各种格式的文本真的很方便!这里用于打开和编辑用到的各种文件。

1、mnist手写数字数据集下载(http://yann.lecun.com/exdb/mnist/)。

将下图中的4个文件均下载到mnist_test文件夹下,并解压到当前文件夹,得到如下4个文件:t10k-labels.idx1-ubyte,train-labels.idx1-ubyte,t10k-images.idx3-ubyte,train-images.idx3-ubyte。

2、lmdb格式训练集和测试集转换。

2.1 在mnist_test文件夹下新建两个文本文件,分别命名为:create_minist_trainlmdb.bat和create_minist_testlmdb.bat。

2.2 向create_minist_trainlmdb.bat中添加如下内容,并保存:

D:\Libraries\caffe\msvc2013_64\bin\convert_mnist_data.exe train-images.idx3-ubyte train-labels.idx1-ubyte mnist_train_lmdb
pause

convert_mnist_data.exe位于caffe安装目录的bin文件夹下,无需将其拷到当前目录,只要制定其绝对路径即可。注意输入的文件名要正确,否则找不到,会报错!

2.3 向create_minist_testlmdb.bat中添加如下内容,并保存:

D:\Libraries\caffe\msvc2013_64\bin\convert_mnist_data.exe t10k-images.idx3-ubyte t10k-labels.idx1-ubyte mnist_test_lmdb
pause  

双击执行这两个.bat文件,会在当前文件夹下生成如下两个文件夹,里面分别保存着lmdb格式的训练集和测试集。

3、训练caffemodel并测试。

在caffe源码目录下有一个examples文件夹,在examples文件夹下有一个mnist文件夹,将该文件夹下如下三个文件:lenet.prototxt、lenet_solver.prototxt和lenet_train_test.prototxt,拷贝到mnist_test文件夹下。

打开lenet_solver.prototxt,将net的值改为lenet_train_test.prototxt,同时可以修改solver_mode,可以是CPU,也可以是GPU,其他参数也可以做适当调整,这里不再调整。

再打开lenet_train_test.prototxt,将对应的内容按照指定的格式进行修改,如下图所示:

新建一个文本文件,重新命名为train.bat,添加如下内容:

D:\Libraries\caffe\msvc2013_64\bin\caffe.exe train --solver=lenet_solver.prototxt
pause

保存,双击执行,运行界面如下:

运行完毕,会在当前文件夹下生成如下四个文件(即训练出来的模型):

下面进行测试,在当前文件夹下新建一个文本文件,重新命名为test.bat,添加如下内容:

D:\Libraries\caffe\msvc2013_64\bin\caffe.exe test --model lenet_train_test.prototxt -weights=lenet_iter_10000.caffemodel
pause

保存,双击打开,执行结果如下:

至此caffe模型训练完毕,下面使用图片进行实测。

4、计算mean.binaryproto。

在进行实测之前,我们需要计算模型的均值,具体方法如下。

4.1 打开之前的lenet_train_test.prototxt,作进一步修改,添加如下两处内容:


4.2 新建一个文本文件,重命名为computer_image_mean.bat,向其中添加如下内容:

D:\Libraries\caffe\msvc2013_64\bin\compute_image_mean.exe mnist_train_lmdb mean.binaryproto --backend=lmdb
pause

保存,双击执行,会在当前目录下生成文件mean.binaryproto。

5、实际图片分类测试。

5.1 测试图片

有些博客介绍了如何生成测试图片( http://blog.csdn.net/zb1165048017/article/details/52217772),这里就不做多的介绍了。可以直接将下面的这个图片保存到当前目录下,供测试使用。

5.2 新建一个文本文档,命名为label.txt,添加如下内容:

5.3 新建一个文本文档,重新命名为 classification.bat,添加如下内容:

D:\Libraries\caffe\msvc2013_64\bin\classification.exe lenet.prototxt lenet_iter_10000.caffemodel mean.binaryproto label.txt 5.png
pause

保存,双击执行,如下:

这里,我们也可以使用leveldb格式的文件进行测试,只需要将相应配置选项由lmdb转换成leveldb即可。

参考资料:

[1] http://www.cnblogs.com/yixuan-xu/p/5858595.html;

[2] http://blog.csdn.net/zb1165048017/article/details/52217772;

2017.07.19

【caffe】mnist数据集lenet训练与测试相关推荐

  1. 【Pytorch】MNIST数据集的训练和测试

    训练和测试的完整代码: import torch import torch.nn as nn import torch.nn.functional as F from torchvision impo ...

  2. mnist数据集在caffe(windows)上的训练与测试及对自己手写数字的分类

    以下出自http://www.cnblogs.com/yixuan-xu/p/5858595.html 我按照大神的运算步骤完全正确,只是为了加深理解,自己又重新写了一遍,详情请看上述大神博客. 对m ...

  3. FCN制作自己的数据集、训练和测试 caffe

    原文:http://blog.csdn.net/zoro_lov3/article/details/74550735 FCN制作自己的数据集.训练和测试全流程 花了两三周的时间,在导师的催促下,把FC ...

  4. DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练、预测

    DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练.预测 导读 利用python的numpy计算库,进行自定义搭建2层神经网络TwoLayerN ...

  5. 在MNIST数据集上训练一个手写数字识别模型

    使用Pytorch在MNIST数据集上训练一个手写数字识别模型, 代码和参数文件 可下载 1.1 数据下载 import torchvision as tvtraining_sets = tv.dat ...

  6. DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、预测

    DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练.预测 导读           计算图在神经网络算法中的作用.计算图的节点是由局部计算构成的. ...

  7. DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、GC对比

    DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练.GC对比 导读           神经网络算法封装为层级结构的作用.在神经网络算法中,通过将 ...

  8. DL之DCGNN:基于TF利用DCGAN实现在MNIST数据集上训练生成新样本

    DL之DCGNN:基于TF利用DCGAN实现在MNIST数据集上训练生成新样本 目录 输出结果 设计思路 实现部分代码 说明:所有图片文件丢失 输出结果 更新-- 设计思路 更新-- 实现部分代码 更 ...

  9. python划分数据集用pandas_用pandas划分数据集实现训练集和测试集

    1.使用model_select子模块中的train_test_split函数进行划分 数据:使用kaggle上Titanic数据集 划分方法:随机划分 # 导入pandas模块,sklearn中mo ...

最新文章

  1. 前端每日实战:143# 视频演示如何用 CSS 的 Grid 布局创作一枚小松鼠邮票
  2. 06-老马jQuery教程-jQuery高级
  3. html无限添加元素,jquery--html【添加元素】
  4. Redis单机和集群环境搭建
  5. 电力系统matlab实验报告,基于matlab语言计算电力系统暂态稳定仿真程序实验报告.docx...
  6. 【kafka】kafkaProducer 拉取元数据的流程
  7. MATLAB离散傅里叶变换实验结果分析,Matlab离散傅里叶变换实验报告
  8. 微弱信号相关检测程序matlab,基于MATLAB微弱信号的相关检测设计与仿真.pdf
  9. java程序在JVM中是如何运行的?
  10. 如何改变Static Text控件中文字的字体,字体大小及颜色。
  11. pycharm appiunm 公众号测试_知道答案公众号_知到APP笔尖上的艺术——书法基础与赏析单元测试答案_知道答...
  12. 基于VHDL的vivado2017.4使用教程
  13. 基于Python实现的网上购书功能的网站后端
  14. Itext设置页眉页脚、表头划线、水印、条形码、二维码
  15. 电脑可以连接手机热点,却无法连路由器无线wifi
  16. 基于蚁群算法的图像边缘检测
  17. ImageLoader(UIL)自定义HTTP Header信息
  18. 新概念英语(第一册)复习(原文及全文翻译)——Lesson 61 - Lesson 90
  19. contactform7 ajax,Wordpress contact_form_7_v5.0.3 插件 权限提升、任意文件读取漏洞分析...
  20. Qt:QTextStream

热门文章

  1. Java Review - 并发编程_DelayQueue原理源码剖析
  2. 白话Elasticsearch50-深入聚合数据分析之doc values机制
  3. CSS基础_Day01
  4. mysql 散列存储_什么是数据库散列存储? - 蚂蚁吞大象的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  5. 数据结构与算法笔记(十二)—— 查找算法(顺序查找、二分法查找)
  6. java里 currenttime_java 获取当前时间LocalDateTime currentTimeMillis java.util.Date
  7. Win10不能使用Genymotion模拟器的解决方案
  8. Halcon算子知识:optical_flow_mg
  9. java 输入框输入1到9_java程序设计  习题答案1到9
  10. matlab api接口调用json格式