用全连接对手写数字识别案例(附解决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.mzph.cn/pingmian/1487.shtml

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

相关文章

【树莓派Linux内核开发】入门实操篇(虚拟机Ubuntu环境搭建+内核源码获取与配置+内核交叉编译+内核镜像挂载)

【树莓派Linux内核开发】入门实操篇(虚拟机Ubuntu环境搭建内核源码获取与配置内核交叉编译内核镜像挂载) 文章目录 【树莓派Linux内核开发】入门实操篇(虚拟机Ubuntu环境搭建内核源码获取与配置内核交叉编译内核镜像挂载)一、搭建…

判断完数(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int n 0;int i 1;int j 0;int result 1;//提示用户&#xff1b;printf("请输入一个…

目标检测网络YOLO进化之旅

yolo系列网络在目标检测领域取得了巨大的成功&#xff0c; 尤其是在工程实践中&#xff0c; 以其出色的性能优势获得了广泛的应用落地。 YOLO的前3个版本是由同一个作者团队出品&#xff0c; 算是官方版本。 之后的版本都是各个研究团队自己改进的版本&#xff0c; 之间并无明…

基础SQL DDL语句

MySQL的DDL&#xff08;Data Definition Language&#xff09;语句用于定义或修改数据库结构。 DDL数据库操作 查看所有的数据库 show databases; 红色圈起来的是系统数据库&#xff0c;是系统自带的 mysql&#xff1a;包含存储MySQL服务器运行时所需信息的表。这包括数据字典…

【Linux】MySQL的安装及配置(Ubuntu-18.04)

一、安装MySQL 分别安装MySQL服务器、MySQL客户端、C/C开发库 sudo apt-get install mysql-server sudo apt-get install mysql-client sudo apt-get install libmysqlclient-dev 二、配置MySQL 1.查看默认配置文件&#xff0c;此处的user和password为默认提供的&#xff0c;…

Ceph 分布式文件系统 搭建及使用

一、Ceph 介绍 在当今数据爆炸式增长的时代&#xff0c;企业对于可靠、可扩展的存储解决方案的需求日益迫切。Ceph 作为一种开源的、可伸缩的分布式存储解决方案&#xff0c;正逐渐成为企业级存储领域的热门选择。Ceph是一种由Radicalbit公司开发的开源分布式存储系统&#xf…

ElasticSearch虚拟机安装(单机版)

1.下载7.10.2 下载链接&#xff0c;选择LINUX X86_64下载 2.创建用户 useradd es也可以使用系统默认用户&#xff08;非root&#xff09;,root用户会报错 3.解压 tar xvf elasticsearch-7.10.2-linux-x86_64.tar.gz假定目录在/home/es/elasticsearch-7.10.2-linux-x86_64 …

Spring Boot | Spring Boot 默认 “缓存管理“ 、Spring Boot “缓存注解“ 介绍

目录: 一、Spring Boot 默认 "缓存" 管理 :1.1 基础环境搭建① 准备数据② 创建项目③ 编写 "数据库表" 对应的 "实体类"④ 编写 "操作数据库" 的 Repository接口文件⑤ 编写 "业务操作列" Service文件⑥ 编写 "applic…

JavaCard学习笔记: CAP Component 之 Class Component

文章目录 整体结构tag和size字段signature_pool_length和signature_pooltype_descriptor结构导入类型编码导入项签名示例导入类导入数组导入远程方法 interfaces[]interface_info结构flagsinteface_countsuperinterfacesinterface_name class_info_compact classes[]结构flagsi…

基于Springboot的网上商城购物系统

基于SpringbootVue的网上商城购物系统的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页 商品信息 商品资讯 后台登录页面 后台管理首页 用户管理 商品分类管…

记录一个hive中跑insert语句说没创建spark客户端的问题

【背景说明】 我目前搭建离线数仓&#xff0c;并将hive的执行引擎改成了Spark&#xff0c;在将ods层的数据装载到dim层&#xff0c;执行insert语句时报如下错误 【报错】 [42000][40000] Error while compiling statement: FAILED: SemanticException Failed to get a spark…

星链全解1

星链基本信息 星链卫星的寿命约为5年&#xff0c;最终目标是发射42000颗卫星。最初&#xff0c;每颗卫星重约260公斤&#xff0c;与1吨以上的大卫星相比属于“小卫星”。现在&#xff0c;向V2版进化的星链卫星重量近800公斤&#xff0c;约为老一代卫星的3倍。 点击“星链地图…

【Entity Framework】聊一聊EF如何使用数据库函数

【Entity Framework】聊一聊EF如何使用数据库函数 文章目录 【Entity Framework】聊一聊EF如何使用数据库函数一、数据库函数的类型二、内置函数与用户定义的函数四、聚合函数、标量函数和表值函数五、Niladic函数六、EF Core 中的数据库函数映射6.1 内置函数映射6.2 EF.Functi…

Redis入门到通关之数据结构解析-QuickList

文章目录 ☃️前提概要☃️ 配置项相关☃️简要源码☃️总结 Redis中的 QuickList 是一种特殊的数据结构&#xff0c;用于存储列表类型的数据。它的设计目的是在内存中高效地存储和操作大量的列表元素&#xff0c;尤其是当列表长度很大时。 QuickList的内部结构是一个由多个节…

ARM与单片机有啥区别?

初学者必知&#xff1a;ARM与单片机到底有啥区别&#xff1f;1、软件方面这应该是最大的区别了。引入了操作系统。为什么引入操作系统&#xff1f;有什么好处嘛&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「ARM的资料从专业入门到高级教…

【Linux驱动层】iTOP-RK3568学习之路(二):vscode中设置头文件路径-完成代码自动补全

在Ubuntu下用vscode写Linux驱动层的时候&#xff0c;需要添加头文件&#xff1a; #include<linux/module.h> #include<linux/init.h> #include<linux/kernel.h>但vscode没有智能提示&#xff0c;因此需要我们手动添加自己的头文件路径&#xff1a; topeetu…

嵌入式Linux开发实操(十七):Linux Media Infrastructure userspace API

视频和无线电流媒体设备使用的Linux内核到用户空间API,包括摄像机、模拟和数字电视接收卡、AM/FM接收卡、软件定义无线电(SDR)、流捕获和输出设备、编解码器设备和遥控器。典型的媒体设备硬件如下: 媒体基础设施API就是用于控制此类设备的,分五个部分。 第一部分V4L2 API…

AI安全之问:我们的智能助手真的安全吗?

在我们日益依赖人工智能来撰写文档、编写程序代码、甚至创作艺术作品的今天&#xff0c;我们是否曾经想过这些智能系统可能面临的被恶意操纵的风险&#xff1f; 分享几个网站 GPT-3.5研究测试&#xff1a; https://hujiaoai.cn GPT-4研究测试&#xff1a; https://higpt4.cn…

MKS 质量MFC流量控制器原理及应用课件PPT

MKS 质量MFC流量控制器原理及应用课件PPT

Git | Git基本命令

Git | Git基本操作 文章目录 Git | Git基本操作一、创建Git本地仓库1、创建Git仓库2、配置Git3、理解工作区、暂存区、版本库关系 二、添加、修改与查看添加文件查看历史提交记录 修改文件查看.git文件 三、版本回退版本回退撤销修改尚未add已add但还未commit已add并commit 删除…