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

使用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。

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册