tensorflow自主学习入门-从零开始篇(五)tensorflow手写数字识别使用CNN卷积神经网络提高识别率至99%

在之前tensorflow手写数字识别已经完成了普通神经网络实现、加入多隐藏层的神经网络以及tensorboard可视化神经网络,当时识别的准确率依然停留在96%,商用化准确率至少在99.9%,同时还应考虑模型的运行时间情况。

本次实现tensorflow手写数字识别将引入CNN卷积神经网络,大幅度提高模型的准确率,CNN卷积神经网络广泛应用于计算机可视化领域,同时现阶段还在与RNN循环神经网络进行混合,进一步提高图片会话能力,最为经典的就是图片描述模型。

本模型使用卷积神经网络跑Minist数据集,首先,在学习本模型之前,你需要非常详细的学习一下CNN卷积神经网络,这里我会贴上非常通俗易懂的解释。


CNN笔记:通俗理解卷积神经网络


我们还是将代码进行分区

  1. 加载MNIST数据,导入所需模块,定义占位符
  2. 自定义函数部分(主要是为了美观)
  3. 卷积核构建部分(神经网络的构建)
  4. 循环训练部分

第一 加载MNIST数据,导入所需模块,定义占位符

# -*- coding: utf-8 -*-

import tensorflow as tf 
# 加载测试数据的读写工具包,加载测试手写数据,目录MNIST_data是用来存放下载网络上的训练和测试数据的。
# 这里,参考我前面的博文,由于网络原因,测试数据,我单独下载后,放在当前目录的MNIST_data目录了。
import tensorflow.examples.tutorials.mnist.input_data as input_data
mnist = input_data.read_data_sets("MNIST_data", one_hot=True)

# 创建一个交互式的Session。
sess = tf.InteractiveSession()

# 创建两个占位符,数据类型是float。x占位符的形状是[None,784],即用来存放图像数据的变量,图像有多少张
# 是不关注的。但是图像的数据维度有784围。怎么来的,因为MNIST处理的图片都是28*28的大小,将一个二维图像
# 展平后,放入一个长度为784的数组中。
# y_占位符的形状类似x,只是维度只有10,因为输出结果是0-9的
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值