在同一台机器上运行培训和评估的最佳做法是什么?

时间:2017-12-19 09:18:05

标签: tensorflow tensorflow-slim

我想做什么?

  1. 我只有一台机器。

  2. 我想定期评估模式。

  3. 我现在拥有什么?

    1. 使用占位符。假设我通过提供训练数据来执行1000步训练。然后我提供验证数据集进行评估。把它放在一个循环中。

      但谷歌建议,占位符不是长期培训的好方法。

    2. 因此,我使用slim数据集来输入数据。现在,该模型与训练数据集绑定如下:

       net = slim.conv2d(inputs, 64, [11, 11], 4, padding='VALID',
                                  scope='conv1')
      

      我必须构建另一个与验证数据集绑定的模型(在另一个图中)。

    3. 有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

tf.estimator.train_and_evaluate() API旨在简化同一台计算机上的培训和评估(还包括支持在本地或使用Cloud ML Engine扩展到多台计算机)。在内部,它为培训和评估构建了不同的图形,并将不同的输入管道(定义为“输入函数”)从tf.estimator.TrainSpectf.estimator.EvalSpec连接到这些图形。您可以使用Slim API构建这些输入函数,但我们现在建议您使用tf.data API,这样更灵活,更高效。