python识别手写数字字体_基于tensorflow框架对手写字体MNIST数据集的识别
本文我们利用python语言,通过tensorflow框架对手写字体MNIST数据库进行识别。
学习每一门语言都有一个“Hello World”程序,而对数字手写体数据库MNIST的识别就是深度学习的“Hello World”代码。下面我们给出详细的步骤。
tensorflow概述
tensorflow是用C++语言实现的一个深度学习模块。tensorflow是一种数据流编程,所谓的数据流编程,就是python编译环境只负责生成一个深度学习的数据流,然后将数据流传入C++语言的运行环境,在C++语言中执行,执行完的结果再返回到python运行环境,所以你会发现tensorflow的语言很复杂(深度学习本身就是一门较为前沿的领域),但是tensorflow的运行效率比较高,所以比较适合运行深度学习这样计算量庞大的算法。
下面我们来阐述一下手写字体的识别过程,其中手写字体的数据库下载在网上很容易找到:
MNIST数据集
MNIST数据集的官网是Yann LeCun's website。在这里,我们提供了一份python源代码用于自动下载和安装这个数据集。你可以用下面的代码导入到你的项目里面,也可以直接复制粘贴到你的代码文件里面。
下面我们给出具体的、完整的代码分析。
导入所需要的包
第一步,导入所需要的包:
其中,input_data这个类是tensorflow为数据集MNIST专门设计的,只针对MNIST数据集。
函数tf.reset_default_graph()是重置数据流。
导入数据
正如前文所介绍的,其中MNIST_data是文件夹的名字,文件夹需要与代码在同一个目录下,文件夹中的文件就是数据集,如图所示:
one_hot=True表示对标签进行独热编码。
构建网络
构建网络的输入输出,以及权重,如图所示:
其中x_data为输入的图像数据,y_data为输入的标签数据,w为网络的权重,bias为偏置,cross_e为基于交叉熵的损失函数,opt为梯度优化器,train为最终的训练接口。
训练
训练的代码也很简单,其中tf.train.Saver()是保存模型对象,后期可以继续调用。
测试
最后一步就是测试,从测试结果看,为0.91,其中x_test_data为测试的图像输入,y_test_data为测试图像的标签。
总结
本文用的虽然是tensorflow框架,处理的也是图片数据,但是并没有用到深度学习算法,只是用了普通的神经网络——全连接神经网络。所以效果为0.91,读者感兴趣可以使用CNN卷积神经网络对数据进行训练,可以得到较高的识别率。
谢谢阅读,希望对你的学习有所帮助。
python识别手写数字字体_基于tensorflow框架对手写字体MNIST数据集的识别相关推荐
- python cnn代码详解图解_基于TensorFlow的CNN实现Mnist手写数字识别
本文实例为大家分享了基于TensorFlow的CNN实现Mnist手写数字识别的具体代码,供大家参考,具体内容如下 一.CNN模型结构 输入层:Mnist数据集(28*28) 第一层卷积:感受视野5* ...
- python新闻爬虫系统的功能_基于Scrapy框架的Python新闻爬虫
一.开发背景 Python作为数据处理方面的一把好手,近年来的热度不断增长.网络爬虫可以说是Python最具代表性的应用之一,那么通过网络爬虫来学习Python以及网络和数据处理的相关内容可以说是再合 ...
- python 调c++生成的dll 中识别char *_基于tensorflow 实现端到端的OCR:二代身份证号识别...
最近在研究OCR识别相关的东西,最终目标是能识别身份证上的所有中文汉字+数字,不过本文先设定一个小目标,先识别定长为18的身份证号,当然本文的思路也是可以复用来识别定长的验证码识别的. 本文实现思路主 ...
- python神经网络库识别验证码_基于TensorFlow 使用卷积神经网络识别字符型图片验证码...
本项目使用卷积神经网络识别字符型图片验证码,其基于TensorFlow 框架.它封装了非常通用的校验.训练.验证.识别和调用 API,极大地减低了识别字符型验证码花费的时间和精力. 项目地址:http ...
- c++ 图片验证码识别_基于tensorflow 实现端到端的OCR:二代身份证号识别
最近在研究OCR识别相关的东西,最终目标是能识别身份证上的所有中文汉字+数字,不过本文先设定一个小目标,先识别定长为18的身份证号,当然本文的思路也是可以复用来识别定长的验证码识别的. 本文实现思路主 ...
- CV之CNN:基于tensorflow框架采用CNN(改进的AlexNet,训练/评估/推理)卷积神经网络算法实现猫狗图像分类识别
CV之CNN:基于tensorflow框架采用CNN(改进的AlexNet,训练/评估/推理)卷积神经网络算法实现猫狗图像分类识别 目录 基于tensorflow框架采用CNN(改进的AlexNet, ...
- android ui设计最新字体,ui用什么字体_安卓ui设计用什么字体
1 ui用什么字体 UI中字体使用的关键因素. 1.可读性. ui用什么字体_安卓ui设计用什么字体,可读性是UI中字体所需考虑的首要因素.字母字形必须清晰可辨,作为UI元素,其中不同的字母必须可以被 ...
- CV之IC之AlexNet:基于tensorflow框架采用CNN卷积神经网络算法(改进的AlexNet,训练/评估/推理)实现猫狗分类识别案例应用
CV之IC之AlexNet:基于tensorflow框架采用CNN卷积神经网络算法(改进的AlexNet,训练/评估/推理)实现猫狗分类识别案例应用 目录 基于tensorflow框架采用CNN(改进 ...
- 机器学习之sklearn使用下载MNIST数据集进行分类识别
机器学习之sklearn使用下载MNIST数据集进行分类识别 一.MNIST数据集 1.MNIST数据集简介 2.获取MNIST数据集 二.训练一个二分类器 1.随机梯度下降(SGD)分类器 2.分类 ...
最新文章
- jmeter web监听结果_JMeter 性能测试基本过程及示例
- winform 不安装字体怎么应用_Shopify怎么获取第三方应用的帮助?如何从Shopify应用商店安装的应用...
- 【美文欣赏】人人都有难念的经
- hadoop 启动or运行mr错误
- Lachesis Shield 设计上的抉择
- 【渝粤题库】广东开放大学 会展项目实践 形成性考核
- Mybatis There is no getter for property named 'XXX' in 'class java.lang.XXX
- python kafka
- SharePoint 2010 使用代码创建视图查询条件
- oracle sql抓取1
- 深度学习自学(十五):人脸识别数据预处理方法
- 【原创】PC微信逆向分析の强制输出微信调式信息
- NAR|DREAM:编码RNA和药物关联的数据库
- matlab 数学形态学,数学形态学matlab程序
- 基于MATLAB的烟雾火灾检测识别系统
- 营销型网站文案写作的8个技巧
- java面试题(一)java面试题集合
- 用HTML制作一首诗
- 写一段python求和代码
- linux的垃圾箱是哪个文件夹,Ubuntu命令行的垃圾箱Trash CLI,远离 rm 命令误删除重要文件的阴影...