本文我们利用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数据集的识别相关推荐

  1. python cnn代码详解图解_基于TensorFlow的CNN实现Mnist手写数字识别

    本文实例为大家分享了基于TensorFlow的CNN实现Mnist手写数字识别的具体代码,供大家参考,具体内容如下 一.CNN模型结构 输入层:Mnist数据集(28*28) 第一层卷积:感受视野5* ...

  2. python新闻爬虫系统的功能_基于Scrapy框架的Python新闻爬虫

    一.开发背景 Python作为数据处理方面的一把好手,近年来的热度不断增长.网络爬虫可以说是Python最具代表性的应用之一,那么通过网络爬虫来学习Python以及网络和数据处理的相关内容可以说是再合 ...

  3. python 调c++生成的dll 中识别char *_基于tensorflow 实现端到端的OCR:二代身份证号识别...

    最近在研究OCR识别相关的东西,最终目标是能识别身份证上的所有中文汉字+数字,不过本文先设定一个小目标,先识别定长为18的身份证号,当然本文的思路也是可以复用来识别定长的验证码识别的. 本文实现思路主 ...

  4. python神经网络库识别验证码_基于TensorFlow 使用卷积神经网络识别字符型图片验证码...

    本项目使用卷积神经网络识别字符型图片验证码,其基于TensorFlow 框架.它封装了非常通用的校验.训练.验证.识别和调用 API,极大地减低了识别字符型验证码花费的时间和精力. 项目地址:http ...

  5. c++ 图片验证码识别_基于tensorflow 实现端到端的OCR:二代身份证号识别

    最近在研究OCR识别相关的东西,最终目标是能识别身份证上的所有中文汉字+数字,不过本文先设定一个小目标,先识别定长为18的身份证号,当然本文的思路也是可以复用来识别定长的验证码识别的. 本文实现思路主 ...

  6. CV之CNN:基于tensorflow框架采用CNN(改进的AlexNet,训练/评估/推理)卷积神经网络算法实现猫狗图像分类识别

    CV之CNN:基于tensorflow框架采用CNN(改进的AlexNet,训练/评估/推理)卷积神经网络算法实现猫狗图像分类识别 目录 基于tensorflow框架采用CNN(改进的AlexNet, ...

  7. android ui设计最新字体,ui用什么字体_安卓ui设计用什么字体

    1 ui用什么字体 UI中字体使用的关键因素. 1.可读性. ui用什么字体_安卓ui设计用什么字体,可读性是UI中字体所需考虑的首要因素.字母字形必须清晰可辨,作为UI元素,其中不同的字母必须可以被 ...

  8. CV之IC之AlexNet:基于tensorflow框架采用CNN卷积神经网络算法(改进的AlexNet,训练/评估/推理)实现猫狗分类识别案例应用

    CV之IC之AlexNet:基于tensorflow框架采用CNN卷积神经网络算法(改进的AlexNet,训练/评估/推理)实现猫狗分类识别案例应用 目录 基于tensorflow框架采用CNN(改进 ...

  9. 机器学习之sklearn使用下载MNIST数据集进行分类识别

    机器学习之sklearn使用下载MNIST数据集进行分类识别 一.MNIST数据集 1.MNIST数据集简介 2.获取MNIST数据集 二.训练一个二分类器 1.随机梯度下降(SGD)分类器 2.分类 ...

最新文章

  1. jmeter web监听结果_JMeter 性能测试基本过程及示例
  2. winform 不安装字体怎么应用_Shopify怎么获取第三方应用的帮助?如何从Shopify应用商店安装的应用...
  3. 【美文欣赏】人人都有难念的经
  4. hadoop 启动or运行mr错误
  5. Lachesis Shield 设计上的抉择
  6. 【渝粤题库】广东开放大学 会展项目实践 形成性考核
  7. Mybatis There is no getter for property named 'XXX' in 'class java.lang.XXX
  8. python kafka
  9. SharePoint 2010 使用代码创建视图查询条件
  10. oracle sql抓取1
  11. 深度学习自学(十五):人脸识别数据预处理方法
  12. 【原创】PC微信逆向分析の强制输出微信调式信息
  13. NAR|DREAM:编码RNA和药物关联的数据库
  14. matlab 数学形态学,数学形态学matlab程序
  15. 基于MATLAB的烟雾火灾检测识别系统
  16. 营销型网站文案写作的8个技巧
  17. java面试题(一)java面试题集合
  18. 用HTML制作一首诗
  19. 写一段python求和代码
  20. linux的垃圾箱是哪个文件夹,Ubuntu命令行的垃圾箱Trash CLI,远离 rm 命令误删除重要文件的阴影...

热门文章

  1. linux检查内存插槽,Linux查看内存大小和插槽
  2. tcpdump man 手册页的详细中文翻译
  3. SQLZOO selfjoin/zh——爱丁堡巴士
  4. Web安全工具大集合
  5. java解析xml文件并写入Excel表
  6. 四平方和定理(拉格朗日定理)
  7. python快速注释html5_python注释代码块
  8. Spring Cloud之微服务概述
  9. 八字-十天干、十二地支、六十甲子
  10. js逆向--有道翻译