我目前正在调整我的模型以在TPU上运行。我想定期评估模型。我知道功能train_and_evaluate不能与TPU一起使用。
相反,替代方法与Google's Official TPU github类似,如下所示:
num_evals = max(FLAGS.num_evals, 1)
examples_per_eval = training_examples // num_evals
for _ in range(num_evals):
estimator.train(
input_fn=data_pipeline.InputReader(FLAGS.data_dir, is_training=True),
steps=examples_per_eval // FLAGS.batch_size)
tf.logging.info("Running evaluation")
tf.logging.info("%s",
estimator.evaluate(
input_fn=data_pipeline.InputReader(
FLAGS.data_dir, is_training=False),
steps=eval_examples // FLAGS.batch_size,
))
问题::反复调用estimator.train()
时,tf.dataset的iterator如何从最后一个已知点开始继续在数据集中循环?