结合训练和推理在深度学习中的重要性



我认为深度学习中的训练和推理过程是分开的,但是我看到了这个代码片段,并且我实际执行了代码,我发现我的理解可能是不正确的。

network.train()  
batch_losses = []
for step, (imgs, label_imgs) in enumerate(train_loader):
imgs = Variable(imgs).cuda()  
label_imgs = Variable(label_imgs.type(torch.LongTensor)).cuda()  
outputs = network(imgs)  
loss = loss_fn(outputs, label_imgs)
loss_value = loss.data.cpu().numpy()
batch_losses.append(loss_value)

我指出outputs = network(imgs)来弄清楚这个程序。这通常用于估计模型?我知道估算模型对我们的方向很有帮助。但我不明白这有必要。如果我想增加我的训练时间,我可以取消它吗?

您分享的代码片段实际上只是深度学习模型的训练代码。这里,outputs = network(imgs)实际上接收图像也就是说;训练数据并给出预测输出在通过网络(你想要训练数据的模型)之后,

然后基于输出,这里计算loss_fnloss = loss_fn(outputs, label_imgs)取预测标签(输出)和实际标签(label_imgs)

注意:在推理中,你通常不计算损失,你计算预测标签的准确性。损失仅根据训练数据计算,以衡量训练是否正确进行,以及损失是否在减少。如果你仍然有一些疑问,我建议你通过一些基本的深度学习教程来获得更好的洞察力。

最新更新