【caffe】mnist数据集lenet训练与测试
在上一篇中,费了九牛二虎之力总算是把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训练与测试相关推荐
- 【Pytorch】MNIST数据集的训练和测试
训练和测试的完整代码: import torch import torch.nn as nn import torch.nn.functional as F from torchvision impo ...
- mnist数据集在caffe(windows)上的训练与测试及对自己手写数字的分类
以下出自http://www.cnblogs.com/yixuan-xu/p/5858595.html 我按照大神的运算步骤完全正确,只是为了加深理解,自己又重新写了一遍,详情请看上述大神博客. 对m ...
- FCN制作自己的数据集、训练和测试 caffe
原文:http://blog.csdn.net/zoro_lov3/article/details/74550735 FCN制作自己的数据集.训练和测试全流程 花了两三周的时间,在导师的催促下,把FC ...
- DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练、预测
DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练.预测 导读 利用python的numpy计算库,进行自定义搭建2层神经网络TwoLayerN ...
- 在MNIST数据集上训练一个手写数字识别模型
使用Pytorch在MNIST数据集上训练一个手写数字识别模型, 代码和参数文件 可下载 1.1 数据下载 import torchvision as tvtraining_sets = tv.dat ...
- DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、预测
DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练.预测 导读 计算图在神经网络算法中的作用.计算图的节点是由局部计算构成的. ...
- DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、GC对比
DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练.GC对比 导读 神经网络算法封装为层级结构的作用.在神经网络算法中,通过将 ...
- DL之DCGNN:基于TF利用DCGAN实现在MNIST数据集上训练生成新样本
DL之DCGNN:基于TF利用DCGAN实现在MNIST数据集上训练生成新样本 目录 输出结果 设计思路 实现部分代码 说明:所有图片文件丢失 输出结果 更新-- 设计思路 更新-- 实现部分代码 更 ...
- python划分数据集用pandas_用pandas划分数据集实现训练集和测试集
1.使用model_select子模块中的train_test_split函数进行划分 数据:使用kaggle上Titanic数据集 划分方法:随机划分 # 导入pandas模块,sklearn中mo ...
最新文章
- 前端每日实战:143# 视频演示如何用 CSS 的 Grid 布局创作一枚小松鼠邮票
- 06-老马jQuery教程-jQuery高级
- html无限添加元素,jquery--html【添加元素】
- Redis单机和集群环境搭建
- 电力系统matlab实验报告,基于matlab语言计算电力系统暂态稳定仿真程序实验报告.docx...
- 【kafka】kafkaProducer 拉取元数据的流程
- MATLAB离散傅里叶变换实验结果分析,Matlab离散傅里叶变换实验报告
- 微弱信号相关检测程序matlab,基于MATLAB微弱信号的相关检测设计与仿真.pdf
- java程序在JVM中是如何运行的?
- 如何改变Static Text控件中文字的字体,字体大小及颜色。
- pycharm appiunm 公众号测试_知道答案公众号_知到APP笔尖上的艺术——书法基础与赏析单元测试答案_知道答...
- 基于VHDL的vivado2017.4使用教程
- 基于Python实现的网上购书功能的网站后端
- Itext设置页眉页脚、表头划线、水印、条形码、二维码
- 电脑可以连接手机热点,却无法连路由器无线wifi
- 基于蚁群算法的图像边缘检测
- ImageLoader(UIL)自定义HTTP Header信息
- 新概念英语(第一册)复习(原文及全文翻译)——Lesson 61 - Lesson 90
- contactform7 ajax,Wordpress contact_form_7_v5.0.3 插件 权限提升、任意文件读取漏洞分析...
- Qt:QTextStream
热门文章
- Java Review - 并发编程_DelayQueue原理源码剖析
- 白话Elasticsearch50-深入聚合数据分析之doc values机制
- CSS基础_Day01
- mysql 散列存储_什么是数据库散列存储? - 蚂蚁吞大象的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- 数据结构与算法笔记(十二)—— 查找算法(顺序查找、二分法查找)
- java里 currenttime_java 获取当前时间LocalDateTime currentTimeMillis java.util.Date
- Win10不能使用Genymotion模拟器的解决方案
- Halcon算子知识:optical_flow_mg
- java 输入框输入1到9_java程序设计 习题答案1到9
- matlab api接口调用json格式