在 PyTorch 中训练单输出多元线性回归模型

神经网络的架构由数百个神经元组成,每个神经元接收多个输入以执行多元线性回归运算进行预测。在之前的教程中,我们构建了一个仅使用前向函数进行预测的单输出多元线性回归模型。

在本教程中,我们将为我们的单输出多元线性回归模型添加优化器,并执行反向传播以降低模型的损失。具体来说,我们将演示:

  • 如何在 PyTorch 中构建单输出多元线性回归模型。
  • 如何使用 PyTorch 内置包来创建复杂的模型。
  • 如何在 PyTorch 中使用小批量梯度下降训练单输出多元线性回归模型。

通过我的《用PyTorch进行深度学习》一书来启动你的项目。它提供了包含可用代码自学教程


让我们开始吧。

在 PyTorch 中训练单输出多元线性回归模型。
图片来源:Bruno Nascimento。部分权利保留。

概述

本教程分为三个部分;它们是

  • 准备预测数据
  • 使用 Linear 类进行多元线性回归
  • 可视化结果

构建数据集类

与之前的教程一样,我们将创建一个示例数据集来进行实验。我们的数据类包括一个数据集构造函数,一个用于获取数据样本的 __getitem__() 方法,以及一个用于获取创建的数据长度的 __len__() 函数。它看起来是这样的。

这样,我们就可以轻松创建数据集对象了。

想开始使用PyTorch进行深度学习吗?

立即参加我的免费电子邮件速成课程(附示例代码)。

点击注册,同时获得该课程的免费PDF电子书版本。

构建模型类

现在我们有了数据集,让我们来构建一个自定义的多元线性回归模型类。正如我们在上一教程中讨论的,我们定义一个类并使其成为 nn.Module 的子类。因此,该类继承了后者所有的宏和属性。

我们将创建一个输入大小为 2、输出大小为 1 的模型对象。此外,我们可以使用 parameters() 方法打印出所有模型参数。

输出看起来是这样的。

为了训练我们的多元线性回归模型,我们还需要定义优化器和损失函数。我们将为模型采用随机梯度下降优化器和均方误差损失。我们将学习率保持在 0.1。

使用小批量梯度下降训练模型

在开始训练过程之前,让我们将数据加载到 DataLoader 中,并为训练定义批量大小。

我们将开始训练,让过程进行 20 个 epoch,使用与我们之前的教程相同的 for 循环。

在上面的训练循环中,每个 epoch 都会报告损失。您应该会看到类似以下的输出

这个训练循环是 PyTorch 中的典型用法。您将来会在项目中经常重复使用它。

绘制图表

最后,让我们绘制图表来可视化损失在训练过程中如何下降并收敛到某个点。

训练过程中的损失

将所有内容放在一起,完整的代码如下。

总结

在本教程中,您学习了如何在 PyTorch 中构建单输出多元线性回归模型。具体来说,您学习了

  • 如何在 PyTorch 中构建单输出多元线性回归模型。
  • 如何使用 PyTorch 内置包来创建复杂的模型。
  • 如何在 PyTorch 中使用小批量梯度下降训练单输出多元线性回归模型。

开始使用PyTorch进行深度学习!

Deep Learning with PyTorch

学习如何构建深度学习模型

...使用新发布的PyTorch 2.0库

在我的新电子书中探索如何实现
使用 PyTorch进行深度学习

它提供了包含数百个可用代码自学教程,让你从新手变成专家。它将使你掌握:
张量操作训练评估超参数优化等等...

通过动手练习开启你的深度学习之旅


查看内容

暂无评论。

留下回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。