【Caffe学习01】在Caffe中trian MNIST
来源:互联网 发布:linux 查看nat表 编辑:程序博客网 时间:2024/06/05 13:33
在上次搭建好Caffe环境的基础上我们进行第一次实验,将Caffe自带的一个Mnist example跑一跑,对其在处理图像方面的能力有个初步了解。
如果还没有搭建好环境的朋友可以看看我的上一篇文章:
http://blog.csdn.net/AkashaicRecorder/article/details/71016942
MNIST简介
MNIST手写数字数据库是另外一个更大的手写体数据库NIST的子集,现在已成为图像识别领域用来测试自己的算法的一个基准数据库,它的训练集由60000张手写数字图片样本组成,测试集包含了10000个样本,其中所有的图片样本都经过了尺寸标准化和中心化,图片的大小固定为28*28。对于想要在实际数据上学习技巧和学习模式识别方法的人来说,这是一个很好的数据库,同时减少了人们在对素材进行预处理和格式化方面花费的时间。
以下是官网原文的描述:
The MNIST database of handwritten digits, available from this page, has a training set of 60,000 examples, and a test set of 10,000 examples. It is a subset of a larger set available from NIST. The digits have been size-normalized and centered in a fixed-size image.
It is a good database for people who want to try learning techniques and pattern recognition methods on real-world data while spending minimal efforts on preprocessing and formatting.
官网地址,你可以在这里下载用于训练的数据集:
http://yann.lecun.com/exdb/mnist/
生成需要的文件及使用训练好的模型进行识别
1.要使用这个训练集,你需要编译以下几个项目并使用它们生产的exe
2.将之前在minist官网下载好的训练集解压并放到指定目录下,
注意一定要放到你caffe工程的data\minist目录下,不然后面会执行文件报错
(PS:由于我们是windows系统执行不了get_mnist.sh这个shell文件,直接去官网下载包放到指定目录可以达到相同的效果)
3.在..\caffe\build\examples\mnist目录下新建bat文件夹并创建如下bat文件
下面我们一一来解释它们分别的作用:
convert_train_lmdb.bat
F:\OpenSource\caffe\build\examples\mnist\Release\convert_mnist_data.exe ::train-images训练图片路径F:\OpenSource\caffe\data\mnist\train-images.idx3-ubyte ::训练标签路径F:\OpenSource\caffe\data\mnist\train-labels.idx1-ubyte ::训练出来的lmdb文件存放的位置F:\OpenSource\caffe\data\mnist\lmdb\train_lmdbpause
注:
Caffe生成的数据分为2种格式:Lmdb和Leveldb 它们都是键/值对(Key/Value Pair)嵌入式数据库管理系统编程库。 虽然lmdb的内存消耗是leveldb的1.1倍,但是lmdb的速度比leveldb快10%至15%,更重要的是lmdb允许多种训练模型同时读取同一组数据集。 因此lmdb取代了leveldb成为Caffe默认的数据集生成格式。
也就是说,这个程序的作用是为了将原始图片素材和标签对应转换成caffe中能够运行的lmdb文件。
convert_test_lmdb.bat
F:\OpenSource\caffe\build\examples\mnist\Release\convert_mnist_data.exe F:\OpenSource\caffe\data\mnist\t10k-images.idx3-ubyte F:\OpenSource\caffe\data\mnist\t10k-labels.idx1-ubyte F:\OpenSource\caffe\data\mnist\lmdb\test_lmdbpause
同上,convert_train_lmdb.bat是为了转换用于训练的lmdb文件这个则是为了转换用于测试的lmdb文件
注意,用于生产存放lmdb文件的文件夹一定要是不存在的,不然执行bat会报错——处理程序停止响应
执行完以上两个后,我们发现caffe\data\mnist\lmdb里多了两个文件夹
train.bat
F:\OpenSource\caffe\build\tools\Release\caffe.exe train -solver=F:/OpenSource/caffe/examples/mnist/lenet_solver.prototxtpause
训练模型生成迭代model文件
必需文件》》》
一、网络模型文件 lenet_train_test.prototxt
位于caffe\examples\mnist
二、训练超参数文件 lenet_solver.prototxt
在 lenet_train_test.prototxt修改
TRAIN source路径为训练图片的lmdb文件路径
TEST source路径为测试图片的lmdb文件路径
在 lenet_solver.prototxt中修改
net的path为网络模型文件 lenet_train_test.prototxt的地址,
snapshot_prefix为生产训练模型的地址caffe\data\mnist\model
如果snapshot_prefix不指定,模型文件将会默认生成在train.bat同级文件夹下
迭代模型训练时间根据计算机性能决定,一般在15——45分钟
模型生产成功即意味着可以使用它来识别图片
mnist_mean.bat
F:\OpenSource\caffe\build\tools\Release\compute_image_mean.exe F:\OpenSource\caffe\data\mnist\lmdb\train_lmdb F:\OpenSource\caffe\data\mnist\mean_file\mean.binaryprotopause
mean_file需要自己创建,用于存放计算均值文件mean.binaryproto
平均归一化训练出来的图像对识别结果有提升,所以要使用该方法计算出 训练/测试数据的平均图像。且求平均图像的方法是直接从LevelDB或者LMDB数据库里面直接读取出来的,而不是直接用图像数据库里面求出,所以要提供train_lmdb 路径,才能求平均图像。
mnist_classification.bat
::分类执行文件F:\OpenSource\caffe\build\examples\cpp_classification\Release\classification.exe::网络模型配置文件,暂时不用改F:\OpenSource\caffe\examples\mnist\lenet.prototxt::训练好的Caffe Model模型F:\OpenSource\caffe\data\mnist\model\_iter_10000.caffemodel::均值文件的路径F:\OpenSource\caffe\data\mnist\mean_file\mean.binaryproto::训练图像label标签F:\OpenSource\caffe\data\mnist\mnist_lable.txt::要测试的图片文件F:\OpenSource\caffe\data\mnist\binarybmp\XXX.bmppause
mnist_lable.txt要怎么写?
这里可以下载用于测试的Mnist图片库
http://pan.baidu.com/s/1hrXYLLi
执行mnist_classification.bat
显示出识别结果
源图片:
识别结果
第一行显示的是该图片为0的概率,可以看到它成功的识别出了数字0,经测试,这个模型识别数字的准确率大概为90%
下一次,我们将详细解析模型分析出这样结果的原因,及如何进一步提高识别率
- 【Caffe学习01】在Caffe中trian MNIST
- caffe学习笔记:mnist
- caffe上手:mnist学习
- caffe上手mnist学习笔记
- Caffe学习之训练mnist
- Caffe学习之测试mnist
- 深度学习_caffe (4) 基于mnist实例搭建新的神经网络&在caffe中添加层
- MNIST在caffe上的训练与学习
- 在Caffe中调用TensorRT提供的MNIST model
- Caffe学习笔记(1)--在spyder中 import caffe
- 用Caffe在MNIST上训练LeNet
- caffe学习笔记:1、Training LeNet on MNIST with Caffe
- Caffe学习笔记《Training LeNet on MNIST with Caffe》
- 深度学习_caffe (4) 基于mnist实例搭建新的神经网络&在caffe中添加层(续1)
- caffe学习笔记(一):mnist
- caffe学习笔记(二)--MNIST实例
- Caffe学习笔记二 mnist的使用
- caffe学习笔记(一):MNIST例程
- 二叉树的前序,中序,后序的递归与非递归遍历
- C++第6次作业
- 联合体,位域, 结构体对齐
- QuantLib教程(一)QuantLib的时间
- Java构造和解析Json数据-fastjson
- 【Caffe学习01】在Caffe中trian MNIST
- R语言入门——常用函数和变量
- 二、SCM 流水灯&FPGA流水灯
- My universe!
- Easy-32
- 转载一个quora上看到的图像处理深度学习论文合集
- 解决Anaconda在指定虚拟环境下无法包的问题
- 【LectCode】34. Search for a Range
- 模拟atoi