评估功能如何在keras中工作

时间:2018-07-10 20:41:31

标签: python tensorflow machine-learning keras loss

对于Keras的evaluate函数应该得到什么值,我有些困惑。

这是Keras文档中的evaluate函数定义:

evaluate(self, x=None, y=None, batch_size=None, 
         verbose=1, sample_weight=None, steps=None)

这是同一页上的简短说明:

  

在测试模式下返回模型的损失值和指标值。

如果我有一个庞大的交叉验证数据集,那么哪种类型的要求我多次调用evaluate函数,evaluate函数是否还记得以前的调用?还是每次仅返回给定迷你批次的 损失 值?

1 个答案:

答案 0 :(得分:1)

evaluate()方法会根据传递给模型的整个数据评估模型,因此,给定的损失值和度量值基于模型对整个数据的性能。

此外,还有另一种称为test_on_batch()的方法,该方法在单批数据上测试模型,并在给定数据批上返回模型的相应损耗值和度量值。 / p>

但是,我不确定您说的是什么意思:“我有一个很大的交叉验证数据集,哪种类型的代码需要我几次 ...”来调用(强调我的意思) 。您是说整个验证数据都不适合存储吗?如果是这种情况,并且您已经将验证数据存储在磁盘上的文件中(例如h5py文件),则可以定义一个生成器,并使用evaluate_generator()方法使用您定义的生成器执行评估。 / p>