互联网技术 / 互联网资讯 · 2024年1月20日 0

使用nn.Module类实现线性回归模型

上次介绍了顺序模型,但是在大多数情况下,我们基本都是以类的形式实现神经网络。

大多数情况下创建一个继承自 PyTorch 中的 nn.module 的类,这样可以使用 PyTorch 提供的许多高级 API,而无需自己实现。

下面展示了一个可以从nn.module创建的最简单的神经网络类的示例。基于 nn.module的类的最低要求是覆盖__inIT__()方法和foRwaRd()方法。

在这个类中,定义了一个简单的线性网络,具有两个输入和一个输出,并使用 SigMoid()函数作为网络的激活函数。

现在让我们测试一下模型。

现在让定义一个损失函数和优化函数。

我们创建一个由方程产生的数据集,并通过函数制造噪音

使用nn.Module类实现线性回归模型

关于Torch.unsqueeze函数解读。

遍历每次epoch,计算出loSS,反向传播计算梯度,不断的更新梯度,使用梯度下降进行优化。

使用nn.Module类实现线性回归模型

[w, b] = Model.paRaMeteRs() pRint(w,b) 

这里的b=0.7,等于0.2 + Torch.Rand(x.size()),经过大量的训练Torch.Rand()一般约等于0.5。