Machine learning seq2seq模型中测试与推理的差异

Machine learning seq2seq模型中测试与推理的差异,machine-learning,training-data,transformer,seq2seq,Machine Learning,Training Data,Transformer,Seq2seq,我正在研究变压器模型,我对评估和推断之间的区别感到困惑。据我所知,评估是在模型经过训练后进行的,只需给它一个来源,并要求它一个接一个地预测目标(在seq2seq问题中) 然而,在本教程中,它以与培训相同的方式进行评估,即在给定源和目标的情况下,向前传递到模型会造成损失。推理步骤更类似于我所理解的评估。在本例中,我尝试了该模型,它在评估和测试方面做得非常好,但在推理步骤中,我发现它无法输出任何有意义的内容。 有人能给我解释一下评价和推理的区别吗?评价和推理确实是两个不同的主题,但前者只能通过后者来

我正在研究变压器模型,我对评估和推断之间的区别感到困惑。据我所知,评估是在模型经过训练后进行的,只需给它一个来源,并要求它一个接一个地预测目标(在seq2seq问题中)

然而,在本教程中,它以与培训相同的方式进行评估,即在给定源和目标的情况下,向前传递到模型会造成损失。推理步骤更类似于我所理解的评估。在本例中,我尝试了该模型,它在评估和测试方面做得非常好,但在推理步骤中,我发现它无法输出任何有意义的内容。
有人能给我解释一下评价和推理的区别吗?

评价和推理确实是两个不同的主题,但前者只能通过后者来实现。实际上,为了执行评估,您会反复进行推断

在这一具体步骤中:

 train_loss = train(model, train_iterator, optimizer, criterion, CLIP)
 valid_loss = evaluate(model, valid_iterator, criterion)
在训练集中的每个历元之后,我们需要评估/推断验证集中的每个样本,以检查是否存在过拟合或欠拟合或其他现象。这发生在任何健壮的机器学习过程中(至少应该发生)

如果测试时出现问题,可能是由于两个不同的原因:

  • 您要么不以将输入输入输入到training+validation的相同方式进行测试
  • 测试集与培训和验证非常不同,因此当您的模型受到与您使用的培训和验证在统计上不同的输入时,其表现不佳

  • 此外,请注意,与seq2seq相比,评估和推理与seq2seq无关,在其他机器学习问题中也没有区别;评估和推理的概念同样适用于所有机器学习任务。

    谢谢您的回答!这与我的理解是一样的,但在本教程中让我困惑的是,还有另一个推理函数,它的执行方式与评估不同。在本教程中,测试、验证和培训都是以相同的方式完成的,但推理不是。因此,该模型在测试中表现得相当一致,但在推理中表现不佳。