我已阅读答案here,并试图了解training
,validation
和testing
如何映射到Tensorflow Estimator API和Keras API。
答:Tensorflowtf.estimator.train_and_evaluate
函数采用train_spec
和eval_spec
。
在这里,evaluate
是上述术语中的validation
还是testing
?
如果是testing
,在哪里指定validation set
?
B:凯拉斯
在Keras中,这似乎更清楚了,model.fit
采用validation_data
参数,该参数用于validation set
。我们为model.evaluate
提供了一个单独的功能test set
。它是否正确?
最佳答案
实际上,术语“测试集”和“验证集”可以互换使用(从上面的描述中有所体现)。结果,将训练期间使用的那个称为测试/验证集变得很普遍。为了消除歧义,为超参数调整而预留的集合(此处称为验证集合)通常称为保持集合。(source)
根据此定义,您可以做一件简单的事情。例如,假设第一个数据集是“ train”,第二个数据集是“ validation”(如在keras中一样),用于在每个步骤对模型进行实时评估,而最终数据集是“ test”。
您只需在测试数据集上运行model.predict,即可在模型训练完毕后对其进行检查,以查看模型如何处理看不见的数据。
关于python - Tensforflow估算器与Keras的验证和测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52106752/