评估函数如何在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()
方法使用您定义的生成器执行评估。
我对 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()
方法使用您定义的生成器执行评估。