网站大量收购独家精品文档,联系QQ:2885784924

深度学习案例教程 教案3.4.1MNIST数据集处理.docx

深度学习案例教程 教案3.4.1MNIST数据集处理.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

(p1)

在本节课开始,我们将进行手写数字识别任务的实践操作。

手写数字识别是一项重要的机器学习任务,它可以帮助我们识别和分类手写的数字字符。

在这个任务中,神经网络的训练是关键步骤,它能够自动学习并获取最优的权重参数。

神经网络的训练过程可以分为两个主要阶段。

首先是前向传播算法,它通过输入数据和当前的权重参数计算神经网络的输出结果,也就是预测值。

然后,我们使用损失函数来衡量预测值与真实值之间的差距。

损失函数通常采用均方误差或交叉熵等形式,帮助我们评估神经网络的性能。

接下来,是反向传播算法的应用。

反向传播算法通过计算损失函数对每个参数的梯度,

来确定每个参数对损失函数的影响程度。

这个过程可以看作是一种反向的信息传递,通过梯度的计算,

我们可以知道在当前权重参数下,损失函数的变化情况。

最后,我们使用合适的梯度下降算法对权重进行更新,以使损失函数最小化。

梯度下降算法根据梯度的方向和大小,沿着损失函数的负梯度方向进行参数的更新。

通过不断地迭代和更新权重,我们可以逐渐优化神经网络的性能,使其在手写数字识别任务中达到最佳状态。

为了评估神经网络的性能,我们通常会将数据集分成训练集和测试集。

训练集用于训练神经网络,通过不断地调整权重参数,

使得神经网络能够更好地适应训练数据。

而测试集则用于评估神经网络在未见过的数据上的表现,

帮助我们判断模型的泛化能力。

(p2)

神经网络的训练及参数更新的过程如图所示。

我们先进行参数初始化。

然后获取Bach数据,进行前向传播算法,然后计算预测值。

我们来确认它是否达到训练要求,

如果能达到,那就训练结束,

如果达不到训练要求,那么就通过损失函数进行计算,

进行反向传播算法,然后更新参数,

再进入batch参数,然后前向传播计算预测值,

再来进行判断,一直到达可以达到训练要求为止

(p3)

好,那首先进行我们实践任务的第一个阶段:MNIST数据处理。

在手写数字识别任务中,我们使用MNIST数据集进行训练。

MNIST是由YannLeCun等人创建的手写数字识别数据集,

该数据集包含了大量的手写数字图片及其对应的标签。

这个数据集被广泛应用于手写数字识别神经网络的建模中,

因为它可以很好地训练和评估模型的性能。

MNIST数据集中的图片共有10类,对应的阿拉伯数字为0~9。

每张图片都是28x28的灰度图像,像素值的范围在0~255之间。

我们需要将这些图像数据进行预处理,以便于神经网络的训练。

具体来说,我们需要将像素值进行归一化处理,将其缩放到0~1之间。

在实践中,我们通常会采用交叉验证等方法来评估模型的性能,

以确保模型的泛化能力和稳定性。

(p4)

那首先我们第一步要做的操作,

就是了解一下这个数据集,

这个数据集呢,我们需要去MINIST的官网,

把这个对应的四个类型的文件下载下来。

分别是训练集图像、训练集标签,

测试集图像以及测试集标签,

我们可以去官网看一下,这是它的官网地址。

进来之后,就是这样的四个数据集,

分别有不同大小的字节,把这几个文件分别下载下来

(p5)

那下一步呢,就是我们导入数据集。

在PyTorch中,有一个非常重要并且好用的包是torchvision,

该包主要由3个子包组成,分别是models、datasets和transforms。

models定义了许多用来完成图像方面深度学习的任务模型。

datasets中包含MINIST、FakeData、COCO、ImageFolder、DatasetFolder、ImageNet、CIFAR等一些常用的数据集,

并且提供了数据集设置的一些重要参数,

可以通过简单数据集设置来进行数据集的调用。

transforms用来对数据进行预处理,

预处理会加快神经网络的训练,常见的预处理包括从数组转成张量(tensor)、归一化等。

(p6)

在正式导入数据集之前,

我们先将过程中所需的python包进行导入

包括了numpytorchtorchvision

torchvision中的datasets模块transforms模块

以及画图所需要的matplotlib.pyplot

(p7)

完成导包的操作后,我们先进行MNIST训练集的导入

我们来分析一下这段代码的结构

首先在使用torch.utils.data.DataLoader()导入数据集时

需要传递root,train,download,transform,batch_size,shuffle

这6个参数,我们分别来解释一下这6个参数

root指定了数据集存放的文件夹地址,也就是我们前面下载的MNIST数据集存放的位置

train用来确定加载的数据集类型,取True表示加载为训练集,

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档