评估函数如何在keras中工作

how evaluate function works in keras

我对 Keras 的 evaluate 函数的期望值有点困惑。

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

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

这是来自同一页面的简短描述:

Returns the loss value & metrics values for the model in test mode.

如果我有一个大型交叉验证数据集,需要我多次调用 evaluate 函数,evaluate 函数会记住之前的调用吗?或者它只是 return,比如说,每次给定的小批量的 loss 值?

evaluate() 方法根据您传递给它的整个数据评估模型,因此给定的损失值和指标值基于模型的整体性能数据。

此外,还有另一种方法叫做test_on_batch(),它在单批数据上测试模型,returns模型的相应损失值和指标值给定的数据批次。

但是,我不确定你所说的 "I have a large cross validation data set which kind of requires me to call the evaluate function several times..."(强调我的)是什么意思。你的意思是整个验证数据不适合内存?如果是这种情况,并且您已将验证数据存储在磁盘上的一个文件中(比如一个 h5py 文件),那么您可以定义一个生成器并使用 evaluate_generator() 方法使用您定义的生成器执行评估。