深度学习训练营实现minist手写数字识别

深度学习训练营

  • 原文链接
  • 环境介绍
  • 前置工作
    • 设置GPU
    • 导入要使用的包
    • 进行归一化操作
    • 样本可视化
    • 调整图片格式
  • 构建CNN网络
  • 编译模型
  • 模型训练
  • 预测操作

原文链接

  • 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
  • 🍦 参考文章:365天深度学习训练营-第P1周:实现mnist手写数字识别
  • 🍖 原作者:K同学啊|接辅导、项目定制

环境介绍

  • 语言环境:Python3.9.13
  • 编译器:jupyter notebook
  • 深度学习环境:TensorFlow2

前置工作

设置GPU

如果

# K同学啊深度学习练习
import tensorflow as tf
gpus = tf.config.list_physical_devices("GPU")if gpus:gpu0 = gpus[0] #如果有多个GPU,仅使用第0个GPUtf.config.experimental.set_memory_growth(gpu0, True) #设置GPU显存用量按需使用tf.config.set_visible_devices([gpu0],"GPU")

导入要使用的包

import tensorflow as tf
from tensorflow.keras import datasets, layers, models
import matplotlib.pyplot as plt# 导入mnist数据,依次分别为训练集图片、训练集标签、测试集图片、测试集标签
(train_images, train_labels), (test_images, test_labels) = datasets.mnist.load_data()

进行归一化操作

# 将像素的值标准化至0到1的区间内。
train_images, test_images = train_images / 255.0, test_images / 255.0train_images.shape,test_images.shape,train_labels.shape,test_labels.shape

样本可视化

使用到的是python当中专门用来画图的matplotlib.pyplot

# 将数据集前20个图片数据可视化显示
# 进行图像大小为20宽、10长的绘图(单位为英寸inch)
plt.figure(figsize=(20,10))
# 遍历MNIST数据集下标数值0~49
for i in range(20):# 将整个figure分成5行10列,绘制第i+1个子图。plt.subplot(2,10,i+1)# 设置不显示x轴刻度plt.xticks([])# 设置不显示y轴刻度plt.yticks([])# 设置不显示子图网格线plt.grid(False)# 图像展示,cmap为颜色图谱,"plt.cm.binary"为matplotlib.cm中的色表plt.imshow(train_images[i], cmap=plt.cm.binary)# 设置x轴标签显示为图片对应的数字plt.xlabel(train_labels[i])
# 显示图片
plt.show()

在这里插入图片描述

调整图片格式

#调整数据到我们需要的格式
train_images = train_images.reshape((60000, 28, 28, 1))
test_images = test_images.reshape((10000, 28, 28, 1))train_images.shape,test_images.shape,train_labels.shape,test_labels.shape

调整图片格式为我们需要的
在这里插入图片描述

构建CNN网络

CNN名为卷积神经网络,是一种专门用来处理类似网络结构的数据的神经网络

  • 卷积层:通过卷积操作对输入图像进行降维和特征抽取
  • 池化层:是一种非线性形式的下采样。主要用于特征降维,压缩数据和参数的数量,减小过拟合,同时提高模型的鲁棒性。
  • 全连接层:在经过几个卷积和池化层之后,神经网络中的高级推理通过全连接层来完成。
model = models.Sequential([# 设置二维卷积层1,设置32个3*3卷积核,activation参数将激活函数设置为ReLu函数,input_shape参数将图层的输入形状设置为(28, 28, 1)# ReLu函数作为激活励函数可以增强判定函数和整个神经网络的非线性特性,而本身并不会改变卷积层# 相比其它函数来说,ReLU函数更受青睐,这是因为它可以将神经网络的训练速度提升数倍,而并不会对模型的泛化准确度造成显著影响。layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),#池化层1,2*2采样layers.MaxPooling2D((2, 2)),                   # 设置二维卷积层2,设置64个3*3卷积核,activation参数将激活函数设置为ReLu函数layers.Conv2D(64, (3, 3), activation='relu'),  #池化层2,2*2采样layers.MaxPooling2D((2, 2)),                   layers.Flatten(),                    #Flatten层,连接卷积层与全连接层layers.Dense(64, activation='relu'), #全连接层,特征进一步提取,64为输出空间的维数,activation参数将激活函数设置为ReLu函数layers.Dense(10)                     #输出层,输出预期结果,10为输出空间的维数
])
# 打印网络结构
model.summary()

在这里插入图片描述
Sequential:连续的,序列的
Non-trainable params:不可训练参数

编译模型

# model.compile()方法用于在配置训练方法时,告知训练时用的优化器、损失函数和准确率评测标准
model.compile(# 设置优化器为Adam优化器optimizer='adam',# 设置损失函数为交叉熵损失函数(tf.keras.losses.SparseCategoricalCrossentropy())# from_logits为True时,会将y_pred转化为概率(用softmax),否则不进行转换,通常情况下用True结果更稳定loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),# 设置性能指标列表,将在模型训练时监控列表中的指标metrics=['accuracy'])

模型训练

"""
这里设置输入训练数据集(图片及标签)、验证数据集(图片及标签)以及迭代次数epochs
关于model.fit()函数的具体介绍可参考K同学的博客:
https://blog.csdn.net/qq_38251616/category_10258234.html
"""
history = model.fit(# 输入训练集图片train_images, # 输入训练集标签train_labels, # 设置10个epoch,每一个epoch都将会把所有的数据输入模型完成一次训练。epochs=10, # 设置验证集validation_data=(test_images, test_labels))

训练过程以及结果如下
在这里插入图片描述

预测操作

plt.imshow(test_images[7])

在这里插入图片描述
查看图片的预测结果

pre = model.predict(test_images) # 对所有测试图片进行预测
pre[7] # 输出第七张图片的预测结果

在这里插入图片描述
在预测图片的过程当中,对图像进行预测,预测图像为哪一个0到9的数值,数值越大,则代表越靠近该值,所以由以上结果可以知道,图片的预测结果为9

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

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

相关文章

365天深度学习训练营-第P1周:实现mnist手写数字识别

🍨 本文为🔗365天深度学习训练营 内部限免文章(版权归 K同学啊 所有)🍦 参考文章地址: 🔗第P1周:实现mnist手写数字识别 | 365天深度学习训练营🍖 作者:K同学…

找工作交流群

群定义 源码圈找工作交流群,不同于原有的源码圈技术群,主要如下几点不同: 按照地区拆分。精力有限,暂时只有北上广深杭,拉人进群很累的!!!探讨面试相关的问题。你懂的,面…

最近找工作的行情大家来交流交流

人在广州 4 年经验前端没有大厂经历,广州的外包岗位都不好进,现在开始往北京上海投简历了,恐怕面临转行 最近广州大厂是不是在裁员,这样下去更难找了 坐标上海外企,有岗位,投递简历也很多,但是大…

字节跳动、小米、吉利汽车、同程艺龙、沙特阿美等公司高管变动

中国 字节跳动确认,TikTok首席执行官凯文梅耶尔(Kevin Mayer)已辞职。TikTok现任总经理瓦妮莎帕帕斯(Vanessa Pappas)将成为临时首席执行官。凯文梅耶尔于今年6月1日正式加入字节跳动,担任字节跳动COO兼TikTok全球CEO,此前为迪士尼流媒体负责…

【舆情监控】社会化大数据应用平台TOOM舆情监测系统

TOOM舆情监测系统 1.全面性 整合智能爬虫信息采集技术及信息研判和情感分析技术,对网上海量信息自动抓取、自动分类聚类、主题检测、专题聚焦,实现用户的网络舆情监测需求,形成简报、报告、图表等分析结果,为客户全面掌握网民舆…

大数据舆情监测

大数据舆情监测是当前比较流行的一项监测,今天,大数据技术的应用范围日益广泛。大数据正在促进信息技术与各行业的深度融合,其中的重点应用范围之一是在商业领域的运用,接下来我们简单了解大数据舆情监测分析方案,以及…

TOOM舆情分析网络舆情监控平台研究现状

随着网络舆情迅速发展,国内的舆情监测行业也日渐完善,舆情监控平台在企业发展过程中发挥重要作用,但同样也是有问题存在的,接下来TOOM舆情分析网络舆情监控平台研究现状? 一、网络舆情监控平台 网络舆情监控平台是一种能够对网…

舆情监测平台TOOM

随着互联网快速发展,如今市场上网络舆情监测平台种类有很多,但对于消费者很难挑选一款合适的舆情监测平台,接下来我们从网络舆情监测平台有哪些,舆情监测平台实时方案,如何挑选合适舆情监测平台三个方面,让…

网络舆情监测TOOM

网络舆情工作是收集整理分析和报送网络舆情信息,通过网络舆情监测实时监测网络信息,为企业提供强有力的支持工作,有效防范网络舆情危机,全面监测网络舆情信息的需求不断增加,接下来我们简单了解网络舆情监测相关事宜。…

搞笑短视频如何撰写脚本?分享简单小技巧

搞笑短视频如何撰写脚本?分享简单小技巧 在正式拍摄短视频之前,我们往往还需要撰写好脚本才行,它可以帮助我们更加顺利的拍摄短视频,也能让我们在后期制作的时候更为方便。而且短视频脚本撰写其实也相当于是短视频拍摄前的准备工…

【剪辑必备】短视频全自动切片软件,带货直播切片必备脚本【永久脚本+技术教程】

全自动切片系统 多线程处理 2小时的视频只需要30秒切片完成 影视剪辑 解说 抖音看电影项目 带货直播切片必备 如果你不会做影视解说 那你可以配合抖音看电影项目一起做 这项目目前都是用的这种软件切片制作的 某大V直播带货的时候把直播间录制下来 然后马上切片发布作…

TamperMonkey脚本开发_无限制视频提取

背景 已购课程下载 ,在提取m3u8视频时,视频缓存使用ASE加密 以及VI偏移量等等,由于对这方面了解并不多.不知道如何提取到真实的地址 通过几种方式 嗅探 抓包 控制台监控 都无法获取到 IDM的视频下载由于法律原因无法下载该ts文件 但是这些ts都是分段的 就算下载了 我自己也无…

互动视频脚本 : 电子类的短视频

测试视频:电子实验理论与实践 01 测试互动段视频 这是一个测试互动段视频的测试片段。 一、P1-有趣的电子实验 这是一个测试短视频,主要是用来练习在B站搭建互动段视频的过程。 下面选取其中几段视频,组成三个视频分P片段,用于互…

【剪辑必备】情感对话号必备-微信对话生成脚本,一键生成视频【安卓永久版脚本】

微信模拟聊天软件,可以自行更改网名,改头像,聊天内容随意修改,下载即可使用!没有试用教程,用法非常简单 设备需求:安卓系统 教程工具请到CSDN下载https://download.csdn.net/download/Linxiaoyu2022/87423…

用脚本帮同学自动生成文章观后感后,这名大四学生火了...

点击关注上方“五分钟学算法”, 设为“置顶或星标”,第一时间送达干货。 转自大数据文摘 同一个中国,同一个网课。 3 月 9 日,全国大学生共同上了一堂疫情防控思政大课,这可能是中国参与人数最多的一次网课了。 据统计…

最“赚钱”编程语言出炉,惊到我了.....

Stack Overflow 发布了 2023 年开发者调查报告,据称共计超过 9 万名开发者参与了此次调查。 完整报告包含了受访开发者画像,以及关于开发技术、AI、职业、社区等方面的内容。本文主要介绍关于开发技术和 AI 的部分。 懒人目录: 最流行编程语…

使用AI轻松搞定UI设计;a16z:快速高效使用LLM构建应用程序;AI时代99%软件都会消失;豆瓣9.3的经典Python入门书 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 Indeed:美国5月份生成式AI职位发布量增长 20% Indeed 是美国就业门户网站,根据其最新发布的数据显示&#xff…

投递简历用什么邮箱

一、关于邮箱 1、给应聘单位发送求职邮件时,最好用比较正式的邮箱,比如TOMVIP邮箱, 用户名最好选用你的英文名,或者你的英文名姓氏,简单大方,HR很容易记下,且会觉得你很专业、正式。 2、设置签名…

关于简历

简历格式 这个图是我以前在网上找的,但不记得出处了。如有侵权,请联系我。

怎么从手机上下载应聘简历模板?个人简历如何从手机做?

​当我们找工作时,一般都会先准备一份应聘简历,当我们投递简历或者面试时都会用到,那么如果想要用手机来制作一份简历时,该如何操作呢?想要制作简历,那么首先要下载一份自己喜欢的简历模板,会让…