我对Keras的evaluate
函数应该期待的价值感到有点困惑。
以下是Keras文档中的evaluate
函数定义:
evaluate(self, x=None, y=None, batch_size=None,
verbose=1, sample_weight=None, steps=None)
以下是同一页面的简短说明:
返回测试模式下模型的损失值和度量值。
如果我有一个大的交叉验证数据集需要我多次调用evaluate
函数,那么evaluate
函数是否记得以前的调用?或者它是否仅返回每次给定小批量的损失值?
evaluate()
方法在传递给它的整个数据上评估模型,因此给定的损失值和度量值基于模型在整个数据上的性能。
此外,还有另一种称为test_on_batch()
的方法,该方法在单批数据上测试模型,并返回给定数据批次上模型的相应损失值和度量值。
但是,我不确定你的意思是说“我有一个大的交叉验证数据集,这需要我多次调用evaluate函数......”(强调我的)。你的意思是整个验证数据不适合内存吗?如果是这种情况,并且您已将验证数据存储在磁盘上的文件中(例如h5py文件),那么您可以定义生成器并使用evaluate_generator()
方法使用您定义的生成器执行评估。