Machine learning model.eval()应用于测量训练集的准确性

Machine learning model.eval()应用于测量训练集的准确性,machine-learning,deep-learning,pytorch,Machine Learning,Deep Learning,Pytorch,在训练阶段,在69岁时,我得到了以下结果 列车:损失:0.201644404 Acc:0.887417219(670/755) 验证:损失:0.371976876 Acc:0.88000000(66/75) 对于测试阶段,我在该时期加载模型,并在此列车和验证集上再次测试: 列车组:获得735/755,精度97.35 验证:精度与培训阶段相同 在培训阶段: 在计算验证集的精度之前,我调用model.eval(),但不调用train set 在测试阶段: 在计算训练集和验证集的精度之前

在训练阶段,在69岁时,我得到了以下结果

  • 列车:损失:0.201644404 Acc:0.887417219(670/755)
  • 验证:损失:0.371976876 Acc:0.88000000(66/75)
对于测试阶段,我在该时期加载模型,并在此列车和验证集上再次测试:

  • 列车组:获得735/755,精度97.35
  • 验证:精度与培训阶段相同
在培训阶段:

  • 在计算验证集的精度之前,我调用model.eval(),但不调用train set
在测试阶段:

  • 在计算训练集和验证集的精度之前,我调用model.eval()
问题是

  • 我应该依靠哪种训练精度?培训阶段为0.88,测试阶段为0.97

  • 正如Andrew Ng所指出的,训练精度和验证精度之间的差异可能意味着过度适应。如果我选择0.88,那么我的模型不是过拟合,但是如果我选择0.97,那么我的模型可能是过拟合


    您还应该在火车组上使用model.eval()。因此,0.97可能是使用
    .eval
    对其进行信任的值。您可以使用
    model.eval()
    关闭一些在培训期间有帮助但在预测/验证时会使情况变得更糟的层。谢谢大家。有没有关于这方面的链接或详细说明?