在 PyTorch 中训练多目标多线性回归模型

多目标多线性回归模型是一种机器学习模型,它以单个或多个特征作为输入来做出多个预测。在我们之前的文章中,我们讨论了如何使用多线性回归进行简单预测并生成多个输出。在这里,我们将构建模型并在数据集上进行训练。

在本文中,我们将生成一个数据集,并定义我们的模型以及优化器和损失函数。然后,我们将训练我们的模型并可视化训练过程的结果。具体来说,我们将解释:

  • 如何在 PyTorch 中训练多目标多线性回归模型。
  • 如何生成一个简单的数据集并将其输入模型。
  • 如何使用 PyTorch 中的内置包构建模型。
  • 如何使用小批量梯度下降训练模型并可视化结果。

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


让我们开始吧。

在 PyTorch 中训练多目标多线性回归模型。
图片来源:drown_in_city。部分权利保留。

概述

本教程分为四个部分;它们是:

  • 创建数据类
  • 使用 nn.Module 构建模型
  • 使用小批量梯度下降进行训练
  • 绘制进度

创建数据类

我们需要数据来训练我们的模型。在 PyTorch 中,我们可以利用 Dataset 类。首先,我们将创建我们的数据类,其中包括数据构造函数、返回数据样本的 __getitem__() 方法以及允许我们检查数据长度的 __len__() 方法。我们在构造函数中根据线性模型生成数据。请注意,torch.mm() 用于 **m**atrix **m**ultiplication,并且张量的形状应设置得允许乘法。

然后,我们可以创建将在训练中使用的数据集对象。

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

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

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

使用 nn.Module 构建模型

PyTorch 的 nn.Module 包含了我们构建多线性回归模型所需的所有方法和属性。这个包将帮助我们在本系列未来的教程中构建更复杂的神经网络架构。

我们将使我们的模型类成为 nn.Module 包的子类,从而允许我们继承所有已包含的功能。我们的模型将包括一个构造函数和一个用于进行预测的 forward() 函数。

由于我们需要处理多个输出,因此我们将创建一个具有两个输入和两个输出的模型对象。我们还将列出模型参数。

参数看起来是这样的,权重最初是随机化的。

输出看起来是这样的。

我们将使用随机梯度下降来训练模型,学习率保持在 0.1。为了衡量模型损失,我们将使用均方误差。

PyTorch 有一个 DataLoader 类,它允许我们将数据输入模型。这不仅可以加载数据,还可以在实时应用各种转换。在开始训练之前,让我们定义我们的 dataloader 对象并定义批量大小。

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

使用小批量梯度下降进行训练

一切就绪后,我们可以创建训练循环来训练模型。我们创建一个空列表来存储模型损失,并训练模型 20 个 epoch。

如果运行此代码,您应该会看到类似以下的输出:

绘制进度

由于这是一个线性回归模型,因此训练应该很快。我们可以可视化模型损失在训练过程中每个 epoch 后的下降情况。

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

总结

在本教程中,您学习了在 PyTorch 中训练多目标多线性回归模型所需的步骤。具体来说,您学到了:

  • 如何在 PyTorch 中训练多目标多线性回归模型。
  • 如何生成一个简单的数据集并将其输入模型。
  • 如何使用 PyTorch 中的内置包构建模型。
  • 如何使用小批量梯度下降训练模型并可视化结果。

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

Deep Learning with PyTorch

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

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

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

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

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


查看内容

暂无评论。

留下回复

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