我将代码重写为使用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课程是否已准备好使用队列?
答案 0 :(得分:1)
Estimator
使用tf.train.MonitoredTrainingSession
来处理启动和加入线程。您可以查看几个示例输入fns,例如
tf.estimator.inputs.*
,tf.contrib.learn.io.read*