Tensforflow估算器与Keras的验证和测试

时间:2018-08-30 23:46:13

标签: python tensorflow keras tensorflow-estimator

我已阅读答案here,并试图了解trainingvalidationtesting如何映射到Tensorflow Estimator API和Keras API。

A:Tensorflow

tf.estimator.train_and_evaluate函数需要一个train_spec和一个eval_spec

在这里,evaluate是上述术语中的validation还是testing? 如果是testing,我应该在哪里指定validation set

B:Keras

在Keras中,这似乎更清楚了,model.fit带有validation_data参数,该参数适用于validation set。有一个单独的功能model.evaluate,我们为此提供了test set。这是正确的吗?

1 个答案:

答案 0 :(得分:2)

在实践中,术语“测试集”和“验证集”可互换使用(与上述描述相反)。结果,将训练期间使用的那个称为测试/验证集变得很普遍。为了消除歧义,为超参数调整而预留的集合(此处称为验证集合)通常称为保持集合。(source

基于此定义,您可以做一件简单的事情。例如,假设第一个数据集是“ train”,第二个数据集是“ validation”(如在keras中一样),用于在每个步骤中实时评估模型,而最终数据集是“ test”。 您只需在测试数据集上运行model.predict,即可在模型完成训练后对其进行检查,以查看您的模型如何处理看不见的数据。