简单的Tensorflow(6):MNIST数据集的简单应用

2023-10-28

The MNIST database的全称是Mixed National Institute of Standards and Technology database是一个手写数字数据库,它有60000个训练样本集和10000个测试样本集。它是NIST数据库的一个子集,可以用来做手写数字识别的训练和测试数据集。可以到官网下载http://yann.lecun.com/exdb/mnist/这些文件并不是标准的图像格式。这些图像数据都保存在二进制文件中。每个样本图像的宽高为28*28。


使用之前导入数据集mnist = input_data.read_data_sets('MNIST_data',one_hot=True),one_hot最早是数字电路中的一种编码方式,这里可以理解成一个拥有10个元素的行向量,但是只有其中一个元素为1,其余全都是0。

导入之后需要划分数据集的大小,batch_size = 100,n_batch = mnist.train.num_examples // batch_size

然后定义一个简单的网络即可对数据集进行训练和检测:


全部代码:

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data

#输入数据集
mnist = input_data.read_data_sets('MNIST_data',one_hot=True)

#输入数据集
batch_size = 100
n_batch = mnist.train.num_examples // batch_size

#定义两个占位符
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]))
Result = tf.matmul(x,W) + B
prediction = tf.nn.softmax(Result)

#设置损失函数
loss = tf.reduce_mean(tf.square(y - prediction))

#设置优化器
optimizer = tf.train.GradientDescentOptimizer(0.1)

#最小化代价函数
train = optimizer.minimize(loss)

#初始化变量
init = tf.global_variables_initializer()

#存放预测结果
correct_prediction = tf.equal(tf.argmax(y,1),tf.argmax(prediction,1))

#求准确率
accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))

#设置会话
with tf.Session() as sess:
    sess.run(init)
    for step in range(51):
        for batch in range(n_batch):
            batch_x, batch_y = mnist.train.next_batch(batch_size)
            sess.run(train,feed_dict={x:batch_x,y:batch_y})
        acc = sess.run(accuracy,feed_dict={x:mnist.test.images,y:mnist.test.labels})
        print("Iter "+str(step)+" ,Testing Accuarcy "+str(acc))


结果是:(可以看出如果继续训练准确率会继续慢慢提升)

Iter 0 ,Testing Accuarcy 0.7426
Iter 1 ,Testing Accuarcy 0.8336
Iter 2 ,Testing Accuarcy 0.8603
Iter 3 ,Testing Accuarcy 0.871
Iter 4 ,Testing Accuarcy 0.8765
Iter 5 ,Testing Accuarcy 0.8821
Iter 6 ,Testing Accuarcy 0.8848
Iter 7 ,Testing Accuarcy 0.8894
Iter 8 ,Testing Accuarcy 0.8921
Iter 9 ,Testing Accuarcy 0.8949
Iter 10 ,Testing Accuarcy 0.8958
Iter 11 ,Testing Accuarcy 0.8976
Iter 12 ,Testing Accuarcy 0.8984
Iter 13 ,Testing Accuarcy 0.8997
Iter 14 ,Testing Accuarcy 0.9015
Iter 15 ,Testing Accuarcy 0.9013
Iter 16 ,Testing Accuarcy 0.9026
Iter 17 ,Testing Accuarcy 0.9029
Iter 18 ,Testing Accuarcy 0.9043
Iter 19 ,Testing Accuarcy 0.9048
Iter 20 ,Testing Accuarcy 0.9059
Iter 21 ,Testing Accuarcy 0.9063
Iter 22 ,Testing Accuarcy 0.9067
Iter 23 ,Testing Accuarcy 0.9073
Iter 24 ,Testing Accuarcy 0.9074
Iter 25 ,Testing Accuarcy 0.9078
Iter 26 ,Testing Accuarcy 0.9089
Iter 27 ,Testing Accuarcy 0.9091
Iter 28 ,Testing Accuarcy 0.9092
Iter 29 ,Testing Accuarcy 0.9096
Iter 30 ,Testing Accuarcy 0.9106
Iter 31 ,Testing Accuarcy 0.911
Iter 32 ,Testing Accuarcy 0.9111
Iter 33 ,Testing Accuarcy 0.9115
Iter 34 ,Testing Accuarcy 0.9122
Iter 35 ,Testing Accuarcy 0.9125
Iter 36 ,Testing Accuarcy 0.9124
Iter 37 ,Testing Accuarcy 0.9134
Iter 38 ,Testing Accuarcy 0.9127
Iter 39 ,Testing Accuarcy 0.9135
Iter 40 ,Testing Accuarcy 0.9133
Iter 41 ,Testing Accuarcy 0.9139
Iter 42 ,Testing Accuarcy 0.9141
Iter 43 ,Testing Accuarcy 0.9143
Iter 44 ,Testing Accuarcy 0.9147
Iter 45 ,Testing Accuarcy 0.9152
Iter 46 ,Testing Accuarcy 0.9154
Iter 47 ,Testing Accuarcy 0.9157
Iter 48 ,Testing Accuarcy 0.9157
Iter 49 ,Testing Accuarcy 0.9158
Iter 50 ,Testing Accuarcy 0.9159


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

简单的Tensorflow(6):MNIST数据集的简单应用 的相关文章

随机推荐

  • 图像分割___图像分割方法综述

    From 变分方法与模糊聚类在图像分割中的应用研究 这里主要简单介绍几类经典的方法 基于边缘检测的方法 基于边缘检测的方法主要是通过检测出区域的边缘来进行分割 利用区域之间特征的不一致性 首先检测图像中的边缘点 然后按一定策略连接成闭合的曲
  • C++自学记录(const限定符)

    目录 const限定符 初始化和 const 默认状态下 const对象仅在文件内有效 const的引用 初始化和对const的引用 对const的引用可能引用一个并非const的对象 指针和const const指针 关于常量指针和指针常
  • C++虚函数的作用和实现原理

    一 什么是虚函数 在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数 用法格式为 virtual 函数返回类型 函数名 参数表 函数体 实现多态性 通过指向派生类的基类指针或引用 访问派生类中同名覆盖成员函数 二
  • 【Linux内核设计与实现】Linux内核简介

    之前在读 APUE 的时候 更多的是从上层去了解如何使用Linux系统的API 那个时候就十分喜欢Linux的设计 觉得一切都很奇妙 最近有些迷茫 不知道自己以后更加具体的技术方向在哪 所以最近广泛阅读了很多方面的书 C 方面 服务端网络编
  • ‘jmeter‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

    C Users wtcai gt jmeter jmeter 不是内部或外部命令 也不是可运行的程序 或批处理文件 一般该现象产生的原因是没有配置环境变量 找到此电脑 点击鼠标右键 找到属性 点击鼠标左键 点击右侧的 高级系统设置 然后点击
  • 【机器学习入门】决策树算法(四):CART算法(Classification and Regression Tree)

    CART算法的简介 CART Classification and Regression Tree 算法 即分类回归树算法 也是决策树构建的一种常用算法 CART的构建过程采用的是二分循环分割的方法 每次划分都把当前样本集划分为两个子样本集
  • Git的下载和安装【详细】

    目录 一 前言 二 准备工作 三 安装 无特殊需求可只看第五步一路next即可 lt 1 gt 开始安装 lt 2 gt 选择安装目录 lt 3 gt 选择安装组件 lt 4 gt 选择开始菜单文件夹 lt 5 gt 选择 Git 默认编辑
  • 计算机毕业设计SSM电影推荐系统【附源码数据库】

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 SSM mybatis Ma
  • 【 linux系统入门管理篇-第三章权限管理】

    linux系统入门管理篇 第三章权限管理 本章介绍 一 基本权限UGO 二 基本权限 ACL 三 特殊权限 本章介绍 本章讲述了 Linux系统CentOS7中关于权限的相关概念 以及用户和组的管理方法 一 基本权限UGO 概述 假如你想设
  • anaconda3/lib/python3.6/site-packages/torch/lib/libtorch_python.so: undefined symbol: PySlice_Unpack

    集群上运行pytorch代码 运行时候发现报错 anaconda3 lib python3 6 sitepackages torch lib libtorch python so undefined symbol PySlice Unpac
  • spring-aop的切入表达式和JoinPoint的使用以及怎么返回通知获取结果和在异常通知中获取异常还有环绕通知

    前言 本篇的Spring AOP系类文章第四篇讲解了spring aop的切入不表达式和JoinPoint的使用以及返回通知获取结果和异常通知中获取异常还有环绕通知 个人主页 尘觉主页 个人简介 大家好 我是尘觉 希望我的文章可以帮助到大家
  • 实验16:20211219 Java大数据1+X 中级实操考试(id:2846)

    实验16 20211219 Java大数据1 X 中级实操考试 id 2846 一 项目背景说明 二 表结构 三 步骤 5 分 步骤 1 项目准备 5 分 步骤 2 完成实体类 Student 10 分 步骤 3 完成实体类 Course
  • Nginx + tomcat 的搭建

    目录 一 硬件需求 二 nginx服务安装 1 系统初始化 2 安装环境 3 创建用户 4 解压 编译 安装 5 优化环境变量 6 配置nginx service文件 7 给与权限 三 tomcat 安装 两台安装一样 1 系统初始化 2
  • TT time tunnel时空隧道命令使用场景

    场景1 记录请求时间和次数 生产环境一定要加 n 参数 不然会打满jvm arthas 8868 tt t org fyh arthas controller ProgressController test n 5 Press Q or C
  • 电脑等保测评考证

    等保测评师是什么 公安部对等级测评工作 等级测评机构建设以及等级测评人员进行了规范和需求 需求开展等级测评的人员参加专门培训和考试 并取得 信息安全等级测评师证书 等级测评师分为初级 中级和高级 考试对象 信息安全等级保护测评师培训及考试对
  • centos下完全卸载mysql

    yum方式安装的mysql 1 yum remove mysql mysql server mysql libs compat mysql51 2 rm rf var lib mysql 3 rm etc my cnf 查看是否还有mysq
  • android studio 项目app红叉问题

    在导入项目 或者更新完项目的时候 这里会出现红叉 找寻原因 点击app旁边的箭头 点击上面圈出的地方 进入界面并能看到红字上显示了原因 寻找不到sdk 说明是在我们导入项目的时候sdk配置丢失了 解决方法 点击出sdk下载的界面 并且点击e
  • 关于BottomNavigationView的使用姿势都在这里了

    一 基本用法 1 首先需要添加依赖 implementation com google android material material 1 1 0 2 布局文件中引入
  • 使用Google Play服务的Android定位

    Welcome to android location using google play services example Today we will learn how to use Google Play services API t
  • 简单的Tensorflow(6):MNIST数据集的简单应用

    The MNIST database的全称是Mixed National Institute of Standards and Technology database是一个手写数字数据库 它有60000个训练样本集和10000个测试样本集