Tensorflow tf.estimator.Estimator with QueueRunner

时间:2017-08-02 11:09:37

标签: multithreading tensorflow tensorflow-estimator

我将代码重写为使用tf.estimator.Estimator作为模型的封装对象。 问题是 :  我不知道输入管道是如何适应图片的。

我的输入管道使用由tf.train.Coordinator协调的队列。

为了满足tf.estimator.Estimator要求,我创建了所有"输入图表"在调用时传递给估算器的init_fn函数中:

Estimator.train(...) 

看起来像这样 input_fn(f)

...create input graph...
qr = tf.train.QueueRunner(queue, [operations...])
tf.train.add_queue_runner(qr)

问题是:在这种情况下,如何在Estimator.train(...)的开头和开头分别开始和停止queue runners

启动

我想通过启动我可以传递的队列和init_fn来完成传递给Estimator的脚手架对象。

然而,如何连接线程并优雅地关闭它们 - 我不知道。

使用tf.estimator时是否存在适当的线程输入管道的参考架构。?

Estimator课程是否已准备好使用队列?

1 个答案:

答案 0 :(得分:1)

Estimator使用tf.train.MonitoredTrainingSession来处理启动和加入线程。您可以查看几个示例输入fns,例如 tf.estimator.inputs.*tf.contrib.learn.io.read*