📜  PyTorch 训练

📅  最后修改于: 2020-11-11 00:48:36             🧑  作者: Mango

感知器模型的训练

感知器模型的训练类似于线性回归模型。我们初始化神经模型,该神经模型在输入层中具有两个输入节点,并且具有一个具有S型激活函数的单个输出节点。当我们将模型绘制到数据上时,我们发现它与我们的数据不太吻合。我们需要训练该模型,以便该模型具有最佳的权重和偏差参数并拟合该数据。

有以下步骤来训练模型:

步骤1

第一步,计算模型误差的标准是召回率交叉熵。我们的损失函数将基于二进制交叉熵损失(BCELoss)进行测量,因为我们仅处理两类。它是从nn模块导入的。

criterion=nn.BCELoss()

第2步

现在,我们的下一步是使用优化器更新参数。因此,我们定义了使用梯度下降算法(随机梯度下降)的优化程序。

optimizer=torch.optim.SGD(model.parameters(),lr=0.01) 

第三步

现在,我们将像在线性模型中所做的那样,针对指定的纪元训练模型。所以代码将类似于线性模型

epochs=1000
losses=[]
fori in range(epochs):
    ypred=model.forward(xdata)
    loss=criterion(ypred,ydata)
    print("epoch:",i,"loss:",loss.item())
    losses.append(loss)
    optimizer.zero_grad()  # Set the gradient to zero
    loss.backward()    #To compute derivatives 
    optimizer.step()    # Update the parameters 

现在,最后我们通过简单地调用plotfit()方法来绘制新的线性模型。

plotfit('Trained Model')