训练期间的验证损失远低于验证集的model.evaluate()损失

时间:2019-07-18 04:28:17

标签: python tensorflow keras deep-learning

我有一个非常简单的模型:

  • 顺序
  • 不进行批量标准化
  • 辍学设置为0
  • 不进行正则化
  • 短信损失

在训练期间,验证损失随训练损失而减少,并且最低为0.022。

Validation & training loss vs epoch

但是,当我加载最佳时期的模型并在与训练期间使用的相同验证集上运行Keras的评估功能时,我损失0.14。

这可能是什么原因?

这不是一个孤立的问题,但是我所训练的所有模型似乎都是这种情况。

我已经尝试过但没有用的东西:

  • 从头开始构建模型,而不是加载保存的Keras yaml模型文件
  • 使用model.predict代替model.evaluate并自己计算损失
  • 对来自同一组的验证样本的不同子集进行评估,以查看在训练过程中Keras验证的样本数量是否有可能获得“幸运”

我正在使用tensorflow 1.13.1中包含的Keras版本

0 个答案:

没有答案