对于Keras的evaluate
函数应该得到什么值,我有些困惑。
这是Keras文档中的evaluate
函数定义:
evaluate(self, x=None, y=None, batch_size=None,
verbose=1, sample_weight=None, steps=None)
这是同一页上的简短说明:
在测试模式下返回模型的损失值和指标值。
如果我有一个庞大的交叉验证数据集,那么哪种类型的要求我多次调用evaluate
函数,evaluate
函数是否还记得以前的调用?还是每次仅返回给定迷你批次的 损失 值?
答案 0 :(得分:1)
evaluate()
方法会根据传递给模型的整个数据评估模型,因此,给定的损失值和度量值基于模型对整个数据的性能。
此外,还有另一种称为test_on_batch()
的方法,该方法在单批数据上测试模型,并在给定数据批上返回模型的相应损耗值和度量值。 / p>
但是,我不确定您说的是什么意思:“我有一个很大的交叉验证数据集,哪种类型的代码需要我几次 ...”来调用(强调我的意思) 。您是说整个验证数据都不适合存储吗?如果是这种情况,并且您已经将验证数据存储在磁盘上的文件中(例如h5py文件),则可以定义一个生成器,并使用evaluate_generator()
方法使用您定义的生成器执行评估。 / p>