使用tensorflow框架搭建全连接神经网络,用于识别手写体数字,希望对大家有帮助。

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data# 获取数据集
# one_hot设置为True,将标签数据转化为0/1,如[1,0,0,0,0,0,0,0,0,0]
mnist=input_data.read_data_sets('MNIST_data',one_hot=True)# 定义一个批次的大小
batch_size=100
n_batch=mnist.train.num_examples//batch_size# 定义两个placeholder
# 行数值为None,None可以取任意数,本例中将取值100,即取决于pitch_size
# 列数值为784,因为输入图像尺寸已由28*28转换为1*784
x=tf.placeholder(tf.float32,[None,784])
y=tf.placeholder(tf.float32,[None,10])# 定义两个变量
w=tf.Variable(tf.zeros([784,10]))
b=tf.Variable(tf.zeros([10]))# 定义一个神经网络
# softmax的作用是将tf.matmul(x,w)+b的结果转换为概率值,举例如下:
# [9,2,1,1,2,1,1,2,1,1]
# [0.99527,0.00091,0.00033,0.00033,0.00091,0.00033,0.00033,0.00091,0.00033,0.00033]
prediction=tf.nn.softmax(tf.matmul(x,w)+b)# 定义损失函数
loss=tf.reduce_mean(tf.square(y-prediction))# 定义优化器
optimizer=tf.train.GradientDescentOptimizer(0.2)# 定义模型,优化器通过调整loss里的参数,使loss不断减小
train=optimizer.minimize(loss)# 统计准确率
# tf.argmax返回第一个参数中最大值的下标
# tf.equal比较两个参数是否相等,返回True或False
correct_prediction=tf.equal(tf.argmax(y,1),tf.argmax(prediction,1))
# tf.cast将布尔类型转换为浮点类型
accuracy=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))with tf.Session() as sess:sess.run(tf.global_variables_initializer())# epoch为周期数,所有批次训练完为一个周期for epoch in range(20):for batch in range(n_batch):# 每次取出batch_size条数据进行训练batch_xs,batch_ys=mnist.train.next_batch(batch_size)sess.run(train,feed_dict={x:batch_xs,y:batch_ys})acc = sess.run(accuracy,feed_dict={x:mnist.test.images,y:mnist.test.labels})print('epoch=',epoch,' ','acc=',acc)

版本信息:
OS:Win7 64位 or Win10 64位
python:3.6.x
tensorboard:1.6.0
tensorflow:1.4.0
tensorflow-tensorboard:0.4.0
备注:安装tensorflow1.4.0时自动安装tensorflow-tensorboard0.4.0
#####################################################
MNIST_data文件解压后与Python文件放在同一文件夹下即可使用,MNIST_data文件下载链接:
链接:https://pan.baidu.com/s/1k65qXdFhmy_9SBlrBQ9H5A
提取码:81im
#####################################################

运行结果:

tensorflow学习笔记——手写体数字识别相关推荐

  1. Tensorflow解决MNIST手写体数字识别

    这里给出的代码是来自<Tensorflow实战Google深度学习框架>,以供参考和学习. 首先这个示例应用了几个基本的方法: 使用随机梯度下降(batch) 使用Relu激活函数去线性化 ...

  2. TensorFlow学习笔记——车牌标志识别分类

    TensorFlow--车牌标志识别分类学习笔记 本博客的内容是:在 BlackWalnut Labs 完成车牌标志识别实验的学习笔记 其中主要的部分是 BlackWalnut Labs 的实验过程介 ...

  3. 基于tensorflow的minst手写体数字识别

    引言 TensorFlow 是一个采用数据流图,用于数值计算的开源软件库.它是一个不严格的"神经网络"库,可以利用它提供的模块搭建大多数类型的神经网络.它可以基于CPU或GPU运行 ...

  4. TensorFLow.js实现手写体数字识别

    先看最终效果: 一.加载MNIST数据集 使用预先准备好的脚本加载MNIST数据集,脚本可在文章末尾的源码里面获取. 为了避免从国外直接下载数据集花费太多时间,所以脚本文件里面已经将地址改成本地的,因 ...

  5. Tensorflow 改进的MNIST手写体数字识别

    上篇简单的Tensorflow解决MNIST手写体数字识别可扩展性并不好.例如计算前向传播的函数需要将所有的变量都传入,当神经网络的结构变得复杂.参数更多时,程序的可读性变得非常差.而且这种方式会导致 ...

  6. TensorFlow学习笔记(二)手写体数字的识别——环境安装

    手写体数字的识别--环境安装 上一篇 Anaconda 的安装: 建立 TensorFlow 的 Anaconda 虚拟环境 1. 建立工作目录 2. 建立 Anaconda 虚拟环境 3. 启动 A ...

  7. tensorflow学习笔记(十):GAN生成手写体数字(MNIST)

    文章目录 一.GAN原理 二.项目实战 2.1 项目背景 2.2 网络描述 2.3 项目实战 一.GAN原理 生成对抗网络简称GAN,是由两个网络组成的,一个生成器网络和一个判别器网络.这两个网络可以 ...

  8. tensorflow学习笔记(八):LSTM手写体(MNIST)识别

    文章目录 一.LSTM简介 二.主要函数 三.LSTM手写体(MNIST)识别 1.MNIST数据集简介 2.网络描述 3.项目实战 一.LSTM简介 LSTM是一种特殊的RNN,很好的解决了RNN中 ...

  9. tensorflow学习笔记(七):CNN手写体(MNIST)识别

    文章目录 一.CNN简介 二.主要函数 三.CNN的手写体识别 1.MNIST数据集简介 2.网络描述 3.项目实战 一.CNN简介 一般的卷积神经网络由以下几个层组成:卷积层,池化层,非线性激活函数 ...

最新文章

  1. win7 旗舰版 截图工具不能使用 解决办法
  2. 10.14 socket 网络编程
  3. 23 年后来自生命溪流的回响 — FF7 Remake 音乐深度解析
  4. Ubuntu与Mint哪个好?Linux运维发行版本推荐!
  5. 【IT笔试面试题整理】字符串转数组+数组转字符串
  6. fgetcsv()函数
  7. 基于Docker持续交付平台建设的实践
  8. matlab简单程序实例视频,matlab编程实例100例.docx
  9. linux中lvm的缩减
  10. 大众流行编程语言有哪些 该选择哪一个来入门
  11. (190)FPGA变量初始化方法initial
  12. 江淮大众正式更名,今日盘中涨停!
  13. mysql下删改增语句_MySQL增删改查
  14. 大津二值化算法 ( Otsu's binarization ) 自动确定二值化图像时的阈值
  15. stm32 读取sd卡图片显示_全面测试雷克沙1667x 性能,你懂什么叫超高速SD卡吗
  16. 连点脚本java,按键精灵键盘连点脚本日常
  17. java程序往微信群里发消息_通过java程序,给微信发送消息
  18. 全球移动通信系统GSM
  19. 排序算法之python实现(上)
  20. Asp.Net Core3.1-集成Hangfire

热门文章

  1. Xilinx XCKU115 FPGA 加速卡
  2. 鱼c工作室python课件_我见过最全的python教程鱼C工作室
  3. 迅雷显示服务器未连接,迅雷看看网络连接不上怎么回事 迅雷看看连接不上网络的解决方法...
  4. Java代码生成图片验证码
  5. springboot中使用jetty服务器
  6. 多普达Dopod德版D900刷机有惊无险经历之总结
  7. VMware 克隆独立虚拟机及初始配置
  8. javafx vbox 居中_JavaFX VBox调整大小
  9. 搭建linux服务器详细教程
  10. 分享自用电脑端工具,快来看看有没有你需要的