Caffe手写数字训练识别

在配置caffe后,验证编译是否成功和caffe入门,那我们就从训练手写数字识别开始吧。

用手写数据库MInist数据库:

THE MNIST DATABASEof handwritten digits download url:http://yann.lecun.com/exdb/mnist/

其中包含60,000个示例的训练集以及10,000个示例的测试集。MNIST数据集包含四个文件

文件 内容
train-images-idx3-ubyte.gz training set images (9912422 bytes)
train-labels-idx1-ubyte.gz training set labels (28881 bytes)
t10k-images-idx3-ubyte.gz test set images (1648877 bytes)
t10k-labels-idx1-ubyte.gz: test set labels (4542 bytes)

这四个文件不能直接用于caffe的训练和测试。需要利用生成的convert_mnist_data.exe把四个文件转换为caffe所支持的leveldb或lmdb文件。

转换caffe可以识别的数据

四个文件放到 . \examples\mnist\mnist_data文件夹下

在caffe-windows安装的根目录下,新建一个convert-mnist-data-train.bat批处理文件转换为训练数据,并在文件中添加代码:

Build\x64\Release\convert_mnist_data.exe --backend=leveldb examples\mnist\mnist_data\train-images.idx3-ubyte examples\mnist\mnist_data\train-labels.idx1-ubyte examples\mnist\mnist_data\mnist_train_leveldb

pause

convert-mnist-data-test.bat转换测试数据,代码为:

Build\x64\Release\convert_mnist_data.exe --backend=leveldb examples\mnist\mnist_data\t10k-images.idx3-ubyte examples\mnist\mnist_data\t10k-labels.idx1-ubyte examples\mnist\mnist_data\mnist_test_leveldb
Pause

convert_mnist_data.exe的命令格式为

convert_mnist_data [FLAGS] input_image_file input_label_file output_db_file

[FLAGS]:转换的文件格式可取leveldb或lmdb,示例:–backend=leveldb
Input_image_file:输入的图片文件,示例:train-images.idx3-ubyte
input_label_file:输入的图片标签文件,示例:train-labels.idx1-ubyte
output:保存输出文件的文件夹,示例:mnist_train_lmdb

修改 proto文件

1、首先用VS打开\examples\mnist目录下的lenet_solver.prototxt,将最后一行改成CPU:

The train/test net protocol buffer definition
net: "examples/mnist/lenet_train_test.prototxt"`
test_iter specifies how many forward passes the test should carry out.
In the case of MNIST, we have test batch size 100 and 100 test iterations,
covering the full 10,000 testing images.
test_iter: 100
Carry out testing every 500 training iterations.
test_interval: 500
The base learning rate, momentum and the weight decay of the network.
base_lr: 0.01
momentum: 0.9
weight_decay: 0.0005
The learning rate policy
lr_policy: "inv"
gamma: 0.0001
power: 0.75
Display every 100 iterations
display: 100
The maximum number of iterations
max_iter: 10000`

snapshot intermediate results
snapshot: 5000
snapshot_prefix: “examples/mnist/lenet”
solver mode: CPU or GPU
solver_mode: CPU

2、接着再用VS打开\examples\mnist目录下的lenet_train_test.prototxt,做如下修改以正确指定训练集和测试集。

3、转换好的训练\测试数据集(mnist_train_lmdb\ mnist_train_lmd
mnist_train_leveldb\mnist_train_leveldb)文件夹放在**.\examples\mnist**中。

开始train

1、在caffe-windows根目录下新建一个run.bat,文件中代码:

Build\x64\Release\caffe.exe train --solver=examples/mnist/lenet_solver.prototxt
pause

2、执行run.bat

包括是用CPU还是GPU、训练参数、网络参数等等。

caffe采用的GLOG库内方法打印的信息,这个库主要起记录日志的功能,方便出现问题时查找根源,具体格式为:

​ 日期 时间 进程号 文件名 行号

往右即为当前迭代次数以及损失值(训练过程不输出准确率accuracy)。
当迭代次数达到lenet_solver.prototxt定义的max_iter时,就可以认为训练结束了。并且最终会在目录\examples\mnist下产生训练出的模型(文件后缀名为caffemodel和solverstate),如下图所示:

分别是训练至一半和训练最终完成后的模型。

参考

https://blog.csdn.net/guoyk1990/article/details/52909864

https://www.cnblogs.com/yixuan-xu/p/5858595.html

Caffe手写数字训练识别 (4)相关推荐

  1. linux手写数字识别opencv,opencv实现KNN手写数字的识别

    人工智能是当下很热门的话题,手写识别是一个典型的应用.为了进一步了解这个领域,我阅读了大量的论文,并借助opencv完成了对28x28的数字图片(预处理后的二值图像)的识别任务. 预处理一张图片: 首 ...

  2. TF之NN:利用DNN算法(SGD+softmax+cross_entropy)对mnist手写数字图片识别训练集(TF自带函数下载)实现87.4%识别

    TF之NN:利用DNN算法(SGD+softmax+cross_entropy)对mnist手写数字图片识别训练集(TF自带函数下载)实现87.4%识别 目录 输出结果 代码设计 输出结果 代码设计 ...

  3. DL之DNN:利用DNN算法对mnist手写数字图片识别数据集(sklearn自带,1797*64)训练、预测(95%)

    DL之DNN:利用DNN算法对mnist手写数字图片识别数据集(sklearn自带,1797*64)训练.预测(95%) 目录 数据集展示 输出结果 设计代码 数据集展示 先查看sklearn自带di ...

  4. DL之NN/CNN:NN算法进阶优化(本地数据集50000张训练集图片),六种不同优化算法实现手写数字图片识别逐步提高99.6%准确率

    DL之NN/CNN:NN算法进阶优化(本地数据集50000张训练集图片),六种不同优化算法实现手写数字图片识别逐步提高99.6%准确率 目录 设计思路 设计代码 设计思路 设计代码 import mn ...

  5. DL之NN:NN算法(本地数据集50000张训练集图片)进阶优化之三种参数改进,进一步提高手写数字图片识别的准确率

    DL之NN:NN算法(本地数据集50000张训练集图片)进阶优化之三种参数改进,进一步提高手写数字图片识别的准确率 导读 上一篇文章,比较了三种算法实现对手写数字识别,其中,SVM和神经网络算法表现非 ...

  6. DL之NN/Average_Darkness/SVM:手写数字图片识别(本地数据集50000训练集+数据集加4倍)比较3种算法Average_Darkness、SVM、NN各自的准确率

    DL之NN/Average_Darkness/SVM:手写数字图片识别(本地数据集50000训练集+数据集加4倍)比较3种算法Average_Darkness.SVM.NN各自的准确率 目录 数据集下 ...

  7. 手写数字图片识别+导入csv训练集+预测训练集+csv导出预测结果

    手写数字图片识别+导入csv训练集+预测训练集+csv导出预测结果 题目来源: Dataset之MNIST:MNIST(手写数字图片识别+csv文件)数据集简介.下载.使用方法之详细攻略 导入csv训 ...

  8. Dataset之Handwritten Digits:Handwritten Digits(手写数字图片识别)数据集简介、安装、使用方法之详细攻略

    Dataset之Handwritten Digits:Handwritten Digits(手写数字图片识别)数据集简介.安装.使用方法之详细攻略 目录 Handwritten Digits数据集的简 ...

  9. TF:基于CNN(2+1)实现MNIST手写数字图片识别准确率提高到99%

    TF:基于CNN(2+1)实现MNIST手写数字图片识别准确率提高到99% 导读 与Softmax回归模型相比,使用两层卷积的神经网络模型借助了卷积的威力,准确率高非常大的提升. 目录 输出结果 代码 ...

最新文章

  1. pytorch 加载模型:
  2. Windows下查看dll被哪个进程调用
  3. 跟着“土牛”学架构知识
  4. 牛客网——最简真分数
  5. LeetCode 1484. 克隆含随机指针的二叉树(哈希/递归)
  6. 如何落地云原生DevOps?
  7. 基于jQuery实现自动或点击切换效果
  8. 使用JavaScript(jQuery或Vanilla)选中/取消选中复选框?
  9. 确定性钱包的多账户层次结构(bitcoinj使用BIP44)
  10. 简单WEB登录页面代码实现
  11. python怎么关闭浏览器_python selenium 对浏览器标签页进行关闭和切换的方法
  12. win10 软路由_N合1服务器!NAS、软路由、高清盒子、Web一个都不能少!
  13. eSPI自学笔记(一):前言和简介
  14. 用python做一个木马_Python编程简单的木马程序(转载于乌云中)
  15. 数据结构-栈基本功能的实现
  16. 01-2016.07-小学期游戏开发《坦克大战》
  17. 卡巴斯基互联网安全套装(kis 官方
  18. 支付29.9元,订阅付费专栏Matlab(初级版),免费送对应专栏代码1份
  19. 聚合支付码再升级,下一轮红利有你吗?
  20. 蓝牙耳机延迟受什么因素影响?有没有玩游戏延迟低的品牌推荐?

热门文章

  1. java jcombobox类_Swing JComboBox类
  2. 有关刀削面面馆营业的思考
  3. Photoshop用光与影表现3D立体字效…
  4. 软件设计师(计算机网络)
  5. World word web
  6. 百度收购Hao123始末
  7. matlab把句子分割成单词_将句子拆分成单独的单词 - php
  8. 记录大神张鑫旭的一个插件抛物线运动效果《funParabola》
  9. soapui调用http请求
  10. 房产中介的九大套路,要记住!防止吃亏上当。