用全连接对手写数字识别案例(附解决TensorFlow2.x没有examples问题)

数据集介绍

数据集直接调用可能出现问题,建议从官网直接下载下来,下载存在这四个文件

手写数字识别数据集下载:

链接:https://pan.baidu.com/s/1nqhP4yPNcqefKYs91jp9ng?pwd=xe1h 
提取码:xe1h

55000行训练数据集(minst.train)和10000行测试数据集(mnist.test)。

每一个数据单元分为两部分:一张含手写数字的图片和一个对应的标签 训练数据集图片mnist.train.images,训练数据集的标签是mnist.train.labels

特征值:黑白图片,每张包含28像素*28像素 

目标值:分类 --one-hot编码  那一列标号为1属于哪个类别(0-9数字表示10列,对应看标号1属于                 哪列表示哪个值)             

Mnist数据获取API

TensorFlow框架自带了获取这个数据集的接口,我们直接调用即可

》from trnsorflow.exampls.tutorials.mnist import_data

       mnist = input_data.read_data_sets(path,one_hot = True)

             mnist.train.next_batch(100) 提供批量获取

             mnist.train.image、 labels

             mnist.test.image、 labels

实战

1、网络设计 采用一层,即最后一个输出层的神经网络 ----全连接神经网络

2、全连接层计算

y = w1x1 +w2x2+....+b

x[None,784] * weights[784,10]  + bias[10]= y_predict[None,10]

平均损失:error=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_true,

                   logits=y_predict, name=None))

优化损失:梯度下降

计算准确率:比较输出结果最大值所在位置和真实值的最大值所在位置   一致返回1不一致返回0

                      计算平均

3、代码:

import tensorflow as tf
from tensorflow.examples.speech_commands import input_datatf.compat.v1.disable_eager_execution()
from tensorflow.examples.tutorials.mnist import input_datadef full_connection():"""用全连接对手写数字进行识别:return:"""# 1)准备数据mnist = input_data.read_data_sets("D:\heima\Python深度之神经网络资料\02-代码\mnist_data", one_hot=True)# 用占位符定义真实数据X = tf.compat.v1.placeholder(dtype=tf.float32, shape=[None, 784])y_true = tf.compat.v1.placeholder(dtype=tf.float32, shape=[None, 10])# 2)构造模型 - 全连接# [None, 784] * W[784, 10] + Bias = [None, 10]weights = tf.Variable(initial_value=tf.compat.v1.random_normal(shape=[784, 10], stddev=0.01))bias = tf.Variable(initial_value=tf.compat.v1.random_normal(shape=[10], stddev=0.1))y_predict = tf.matmul(X, weights) + bias# 3)构造损失函数loss_list = tf.nn.softmax_cross_entropy_with_logits(logits=y_predict, labels=y_true)loss = tf.reduce_mean(loss_list)# 4)优化损失# optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(loss)optimizer = tf.compat.v1.train.AdamOptimizer(learning_rate=0.01).minimize(loss)# 5)增加准确率计算bool_list = tf.equal(tf.argmax(y_true, axis=1), tf.argmax(y_predict, axis=1))accuracy = tf.reduce_mean(tf.cast(bool_list, tf.float32))# 初始化变量init = tf.compat.v1.global_variables_initializer()# 开启会话with tf.compat.v1.Session() as sess:# 初始化变量sess.run(init)# 开始训练for i in range(5000):# 获取真实值image, label = mnist.train.next_batch(500)_, loss_value, accuracy_value = sess.run([optimizer, loss, accuracy], feed_dict={X: image, y_true: label})print("第%d次的损失为%f,准确率为%f" % (i+1, loss_value, accuracy_value))return Noneif __name__ == "__main__":full_connection()

解决无examples问题

TensorFlow2.X版本没有examples 下载后又发现里面缺少tutoritus,我是下载的直接放在example里面

将下载的exaples放入下面这个路径:

然后将下载的tutorials放到examples里面 问题就解决了

examples下载:

链接:https://pan.baidu.com/s/1fGan_JGGARIUPror3x6mvw?pwd=3kaz 
提取码:3kaz

tutorials包下载:

链接:https://pan.baidu.com/s/1adA6hUWbxfXXFNRpkYoJIw 
提取码:ffg6

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/637985.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git简介及安装

Git | Git简介与安装 文章目录 Git | Git简介与安装一、Git简介二、Git安装Linux-centosLinux-ubuntu 一、Git简介 存在需求:对于一个文档,由于编写思路或者当前文档丢失,可能存在想要历史版本的需求,并且需要知道每个版本都修改了…

ASP.NET Core 3 高级编程(第8版) 学习笔记 04

第 19 章主要介绍 Restful Service 的相关知识。Restful Service 的核心内容是:(1)HTTP 请求或 HTTP 动词,用 HTTP 请求表达不同的操作,最好遵守惯例。(2)资源,通过 PATH 结合 paylo…

Mogdb 5.0新特性:SQL PATCH绑定执行计划

前言 熟悉Oracle的dba都知道,生产系统出现性能问题时,往往是SQL走错了执行计划,紧急情况下,无法及时修改应用代码,dba可以采用多种方式针对于某类SQL进行执行计划绑定,比如SQL Profile、SPM、SQL Plan Base…

网络原理-IP协议

一、IP协议报头 版本号:用来表示IP协议的版本,现在常用的IP协议有两个版本,IPv4和IPv6,其他版本可能只存在于实验室中,并没有被广泛的使用。 首部长度:用来表示IP报头的长度,因为存在"选项"字段,所以IP报头是可变长的,此处单位为4…

软件测试之【软件测试概论一】

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 前言软件生命周期软件项目开发过程软件项目组织架构软件开发相关模型 软件测试…

Nexpose v6.6.246 for Linux Windows - 漏洞扫描

Nexpose v6.6.246 for Linux & Windows - 漏洞扫描 Rapid7 Vulnerability Management, Release Apr 10, 2024 请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.o…

【002_音频开发_基础篇_Linux音频架构简介】

002_音频开发_基础篇_Linux音频架构简介 文章目录 002_音频开发_基础篇_Linux音频架构简介创作背景Linux 音频架构ALSA 简介ASoC 驱动硬件架构软件架构MachinePlatformCodec ASoC 驱动 PCMALSA设备文件结构 ALSA 使用常用概念alsa-libALSA Open 流程ALSA Write 流程2种写入方法…

JVM-垃圾收集算法

前言 在 Java 中,垃圾收集(Garbage Collection)是一种自动管理内存的机制,它负责在运行时识别和释放不再被程序使用的内存,从而避免内存泄漏和悬空引用问题。本篇文章将介绍三种常见的垃圾收集算法。 标记-清除&…

PostgreSQL大版本如何升级?

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

【王道数据结构笔记】顺序表的基本操作--查找(代码分析)

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:数据结构 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进…

【Hadoop】- YARN架构[7]

前言 Yarn架构是一个用于管理和调度Hadoop集群资源的系统。它是Hadoop生态系统的一部分,主要用于解决Hadoop中的资源管理问题。 通过使用Yarn架构,Hadoop集群中的不同应用程序可以共享集群资源,并根据需要动态分配和回收资源。这种灵活的资…

Android Studio超级详细讲解下载、安装配置教程(建议收藏)

博主介绍:✌专注于前后端、机器学习、人工智能应用领域开发的优质创作者、秉着互联网精神开源贡献精神,答疑解惑、坚持优质作品共享。本人是掘金/腾讯云/阿里云等平台优质作者、擅长前后端项目开发和毕业项目实战,深受全网粉丝喜爱与支持✌有…