我已阅读答案here,并试图了解training
,validation
和testing
如何映射到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
。这是正确的吗?
答案 0 :(得分:2)
在实践中,术语“测试集”和“验证集”可互换使用(与上述描述相反)。结果,将训练期间使用的那个称为测试/验证集变得很普遍。为了消除歧义,为超参数调整而预留的集合(此处称为验证集合)通常称为保持集合。(source)
基于此定义,您可以做一件简单的事情。例如,假设第一个数据集是“ train”,第二个数据集是“ validation”(如在keras中一样),用于在每个步骤中实时评估模型,而最终数据集是“ test”。 您只需在测试数据集上运行model.predict,即可在模型完成训练后对其进行检查,以查看您的模型如何处理看不见的数据。