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

The importance of combining a train and inference in Deep Learning

我以为Deep Learning中训练和推理的过程是分开的,但是看到这段代码,实际执行代码,我发现我的理解可能不正确。

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) 实际上接受了 imgs 即; 训练数据 并在通过 网络(您要在其上训练数据的模型)后给出 预测输出

然后根据该输出,loss_fn 在此处计算 loss = loss_fn(outputs, label_imgs),采用预测标签 (输出) 和实际标签 (label_imgs)

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