加入收藏 | 设为首页 | 会员中心 | 我要投稿 焦作站长网 (https://www.0391zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

针对nn.Module类实现线性回归模型

发布时间:2021-10-14 14:59:20 所属栏目:大数据 来源:互联网
导读:大多数情况下创建一个继承自 Pytorch 中的 nn.Module 的类,这样可以使用 Pytorch 提供的许多高级 API,而无需自己实现。 下面展示了一个可以从nn.Module创建的

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

 

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

 

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

 

import torch 

from torch import nn 

 

class LinearRegression(nn.Module): 

    def __init__(self): 

        #继承父类构造函数 

        super(LinearRegression, self).__init__()  

        #输入和输出的维度都是1 

        self.linear = nn.Linear(1, 1)  

    def forward(self, x): 

        out = self.linear(x) 

        return out 

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

 

# 创建LinearRegression()的实例 

model = LinearRegression() 

print(model)  

# 输出如下 

LinearRegression( 

  (linear): Linear(in_features=1, out_features=1, bias=True) 

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

 

model = LinearRegression()#实例化对象 

num_epochs = 1000#迭代次数 

learning_rate = 1e-2#学习率0.01 

Loss = torch.nn.MSELoss()#损失函数 

optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)#优化函数 

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

 

import torch  

from matplotlib import pyplot as plt 

from torch.autograd import Variable 

from torch import nn 

# 创建数据集  unsqueeze 相当于 

x = Variable(torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1)) 

y = Variable(x * 2 + 0.2 + torch.rand(x.size())) 

plt.scatter(x.data.numpy(),y.data.numpy()) 

(编辑:焦作站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读