基于tensorflow实现手写数字识别

2023-11-09

实验目的

  1. 了解机器学习的相关知识
  2. 实现基于tensorflow的手写数字识别

实验环境

  1. ubuntu16.04 或 windows
  2. python 3(默认安装版本)
  3. tensorflow 2.0 版本以上,或其他深度学习框架

实验内容

实现基于深度学习的 MNIST 手写数字识别

import matplotlib.pyplot as plt
import tensorflow as tf
%matplotlib inline

mnist = tf.keras.datasets.mnist
#加载数据集
(x_train, y_train), (x_test, y_test) = mnist.load_data()#(图像,标签)

x_train, x_test = x_train / 255.0, x_test / 255.0#归一化
model = tf.keras.models.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),#多维的输入一维化
    tf.keras.layers.Dense(128, activation='relu'),#全连接层
    tf.keras.layers.Dropout(0.2),#防止过拟合
    tf.keras.layers.Dense(10)#输出层
])
predictions = model(x_train[:1]).numpy()
tf.nn.softmax(predictions).numpy()
#损失函数
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
loss_fn(y_train[:1], predictions).numpy()
#print(model.summary())
#编译步骤
model.compile(optimizer='adam',
              loss=loss_fn,
              metrics=['accuracy'])
#训练网络,epochs表示多少个训练回合
model.fit(x_train, y_train, epochs=5)

print("测试集结果如下:")
#进行测试集测试 verbose =2:为每个epoch输出一行记录
model.evaluate(x_test, y_test, verbose=2)

plt.figure(figsize=(10, 10))
#前五张测试数据图片
for i in range(5):
    plt.subplot(5, 5, i + 1)
    plt.xticks([])
    plt.yticks([])
    plt.grid(False)
    plt.imshow(x_test[i], cmap=plt.cm.binary)
plt.show()

实验结果:
在这里插入图片描述

实验心得

通过Tensorflow框架来建造神经网络模型对mnist手写数据集进行了训练,对测试数据集的估计准确率基本达到95%以上,基本能够识别测试数据集的手写数字图片里的数字信息,较准确的识别出手写数字

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

基于tensorflow实现手写数字识别 的相关文章

随机推荐

  • OpenCV-Python学习(21)—— OpenCV 图像几何变换之图像翻转(cv.flip、np.flip)

    1 学习目标 学习 OpenCV 图像的翻转函数 cv flip 学习 NumPy 矩阵的反转函数 np flip 自己实现矩阵反转的函数 2 OpenCV 翻转 翻转也称镜像 是指将图像沿轴线进行轴对称变换 水平镜像是将图像沿垂直中轴线进
  • 【maven】mvn deploy 报错 Failed to deploy artifacts: Could not transfer artifact

    文章目录 1 场景1 1 1 概述 1 场景1 1 1 概述 因为在windows下 内网环境 然后升级了flink 但是包是外网拷贝进去的 拷贝到我的本地 现在本地升级好了 需要将jar包发布到内网的nexus机器中 但是执行命令报错如下
  • Vue3.0中引用子组件类型声明报错问题

    Vue3 0中引用子组件类型声明报错问题 报错原因 1 找不到组件模块或者找不到对应的类型声明 2 Typescript 只能理解 ts 文件 无法理解 vue 文件 解决方案 1 在项目根目录或 src 文件夹下创建一个后缀为 d ts
  • 第一个djiango项目(包含搭建环境)

    1 安装django框架 pip install django 2 创建项目命令 django admin startproject 项目名 django admin version 如果您看到Django版本号的输出 则表示安装成功 3
  • 数据分析(二) - Excel按一个单元格内的分隔符进行分行

    文章目录 场景 一 python 二 excel word 场景 办公室老师给了我一张Excel表 记录了每位同学的获奖情况 学号 姓名 奖项 加分 101 小明 ICPC世界冠军 国奖 优秀班干部 15 0 102 小亮 一作论文 数学建
  • vm manager failed to contact configuration server

    当用virt manager命令启动VM 管理工具是报错 vm manager failed to contact configuration server 如下办法解决了我的问题 读取dbus uuid dbus uuidgen get
  • 花费7元训练自己的GPT 2模型

    在上一篇博客中 我介绍了用Tensorflow来重现GPT 1的模型和训练的过程 这次我打算用Pytorch来重现GPT 2的模型并从头进行训练 GPT 2的模型相比GPT 1的改进并不多 主要在以下方面 1 GPT 2把layer nor
  • Gensim 中 word2vec 模型的恢复训练:载入存储模型并继续训练

    Gensim 中 word2vec 模型的恢复训练 本文为系列文章之一 前面的几篇请点击链接 NLP 利器 gensim 库基本特性介绍和安装方式 NLP 利器 Gensim 库的使用之 Word2Vec 模型案例演示 NLP 利器 Gen
  • 数据挖掘概述

    目录 1 数据挖掘概述 2 数据挖掘常用库 3 模型介绍 3 1 分类 3 2 聚类 3 3 回归 3 4 关联 3 5 模型集成 4 模型评估 ROC 曲线 5 模型应用 1 数据挖掘概述 数据挖掘 寻找数据中隐含的知识并用于产生商业价值
  • 无基础学c语言的打卡日记总论

    背景知识 笨人浙江考生 选课是政史地 目前在读大一 知道自己的专业学c并且还学数学分析和高等代数 一开始不以为意 学校用的教材是谭浩强老师的c语言程序设计 推荐的 小白友好 上课之前有很认真的自习课本 第一章好像是一个总论 里面有一些思想以
  • 在NPU上的切片操作x=x[:,::-1,:,:]不生效的分析解决

    1 系统环境 硬件环境 Ascend GPU CPU Ascend GPU MindSpore版本 1 9 0 执行模式 PyNative Graph 不限 Python版本 3 7 5 操作系统平台 Linux 2 报错信息 2 1 问题
  • winform下mapxtreme2008 v7.0 生成release版提示找不到dll问题

    在winform下基于mapxtreme2008 v7 0 生成了一个地图软件 用debug方式运行无误 但改为release版时提示缺少一大堆dll 如 无法从C Program Files x86 Common Files MapInf
  • 本地网站域名与联网冲突吐槽篇

    提示 前面是吐槽360使用bug 以及网站开发者使用弊端 解决冲突主要方法在后面 前言是解决电脑无法保存修改的hosts文件真相以及解决棒法 处理不行的话 只能一棒打死安全软件 前言 电脑里安装了360之类的安全软件 安全类软件为了安全 往
  • 时序预测

    时序预测 MATLAB实现时间序列回归之评估模型残差及统计分布 目录 时序预测 MATLAB实现时间序列回归之评估模型残差及统计分布 基本介绍 程序设计 异方差性 统计分布 学习总结 参考资料 致谢 基本介绍 残差分析的基本目的是检查 CL
  • 偷懒的一天-------Day83

    今天实在是学不进去 从公司里工作着也是浑浑噩噩的 虽然不是我媳妇生孩子 但这也是我们这个大家庭里的第一个孩子 我的亲大侄子啊 当然还可能是侄女 还在想名字 都想了好多了 还是有些激动有些紧张啊 偷懒一天 来码上几个字 草草写上至少我也知道我
  • Opencv的基础操作

    一 图像填充 首先定义图像显示函数 def cv show name img cv2 imshow name img cv2 waitKey 0 cv2 destroyAllWindows 图像读取 img cat cv2 imread c
  • 一定能让你理解的素数筛法——埃氏筛法和欧式筛法

    先上代码 埃氏筛法 include
  • 卸载Docker方法

    卸载步骤 在安装Autoware库的时候安装了Docker 发现电脑硬盘容量被占用不少 现在想卸载一下docker 查找了很多资料 最终使用以下方法完整卸载 1 在配置autoware的时候其实安装的docker ce 所以需要执行 sud
  • Nginx基本使用

    一 Nginx作用 1 HTTP服务器 2 反向代理 3 负载均衡 4 正向代理 5 虚拟主机 等 二 Nginx安装 1 下载nginx最新稳定版 windows nginx 1 14 0 2 解压 备注 如上图 配置关键配置文件后 双击
  • 基于tensorflow实现手写数字识别

    实验目的 了解机器学习的相关知识 实现基于tensorflow的手写数字识别 实验环境 ubuntu16 04 或 windows python 3 默认安装版本 tensorflow 2 0 版本以上 或其他深度学习框架 实验内容 实现基