将图像转换位mnist数据格式

利用mnist数据对数字符号进行识别基本上算是深度学习的Hello World了。在我学习这个“hello world”的过程中,总感觉缺点什么,于是发现无论是训练数据还是测试数据,都是mnist准备好的,即使最后测试的数字识别率很高,我也没有什么参与感。其实,我想测试只是自己手写数字的识别率。

为了完成上述想法,我能想到的有两个方法,其中第一个是将普通图片数据转换成mnist数据。mnist的数据格式非常简单,如下图所示:

两幅图分别表示了图形数据和标签数据。他们都有一个4字节长度的magic number,用来识别数据的具体格式。如果是标签数据,那么格式相对简单,后续是一个标签数量,接着的是标签数据(0-9的值)。如果是图像数据,那么magic number后,除了4个字节的数据数量以外,还有分别占4字节的行列数据,最后的就是图像数据。结构非常简单,但是有两点值得注意:

数据使用big endian组织的。

图像数据中,255表示前景,也就是黑色,0表示背景,也就是白色,这和我们平时看到的RGB是不同的。

知道了数据格式,接下来的事情是用程序将图像转换到mnist了。这里还是用python对数据做转化。

以上是对图像数据的转换,标签数据的转换代码和以上代码基本一样,所以这里不再赘述。

有了这个方法,我们可以通过画图软件画上一堆自己手写的数字,通过python批量转化成mnist格式的数据,再让tensorflow进行测试,算出模型对我们自己手写数字的识别正确率。

好了,以上就是我说的第一种让模型识别自己的手写数字的方法。不过,这个方法不能实时的识别我手写的数字,让人总觉得缺点什么。于是就有了第二种方法,这种方法将借助浏览器,js以及web server等工具将手写的数字实时的传给后台的模型进行识别,然后把结果回复给用户。不过这个方法就要等待下一篇文章来描述了。

本文来自企鹅号 - 全球大搜罗媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏wym

opencv学习笔记 边缘滤波保留(EPF) 高斯双边 均值迁移

双边滤波函数bilateralFilter():定义:bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=N...

1091
来自专栏Python小屋

Python+numpy实现函数向量化

Python本身对向量操作的支持并不是很好,需要借助列表推导式或函数式编程来实现,例如: >>> import random # 生成随机测试数据 >>> x...

5315
来自专栏数据科学学习手札

(数据科学学习手札08)系统聚类法的Python源码实现(与Python,R自带方法进行比较)

聚类分析是数据挖掘方法中应用非常广泛的一项,而聚类分析根据其大体方法的不同又分为系统聚类和快速聚类,其中系统聚类的优点是可以很直观的得到聚类数不同时具体类中包括...

2425
来自专栏数据和云

深入内核丨12C 新特性之 TOP - N 频率柱状图原理和算法

作者简介 ? 黄玮(Fuyuncat) 资深 Oracle DBA,致力于数据库底层技术的研究,其作品获得广大同行的高度评价。 个人网站 www.HelloDB...

27512
来自专栏用户2442861的专栏

caffe示例实现之4在MNIST手写数字数据集上训练与测试LeNet

http://blog.csdn.net/liumaolincycle/article/details/47336921

551
来自专栏python读书笔记

python 数据分析基础 day19-使用statsmodels进行逻辑回归

今天是读《python数据分析基础》的第19天,读书笔记内容为使用statsmodels进行逻辑回归。 以下代码将按数据清洗、训练模型、得出测试集的预测值这三...

6967
来自专栏Spark学习技巧

SparkMllib主题模型案例讲解

一 本文涉及到的算法 1, LDA主题模型 符号定义 文档集合D,m篇,topic集合T,k个主题 D中每个文档d看作一个单词序列< w1,w2,...,wn...

2405
来自专栏机器学习原理

深度学习——CNN(4)分析

1694
来自专栏瓜大三哥

基于FPGA的均值滤波(二)

基于FPGA的均值滤波(二) 之一维求和模块 均值滤波按照整体设计可以分为以下几个子模块: (1)一维求和模块,这里记为sum_1D; (2)二维求和模块,这里...

2319
来自专栏weixuqin 的专栏

深度学习之 TensorFlow(二):TensorFlow 基础知识

3315

扫码关注云+社区