Tensorflow tf.estimator.Estimator 与 QueueRunner
Tensorflow tf.estimator.Estimator with QueueRunner
我正在重写我的代码以使用 tf.estimator.Estimator 作为我的模型的封装对象。
问题是 :
我看不出典型的输入管道如何适合图片。
我的输入管道使用由 tf.train.Coordinator
协调的队列。
为了满足 tf.estimator.Estimator
要求,我在 init_fn
函数中创建了所有 "input graph",调用时传递给估算器:
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 class 是否准备好使用队列?
Estimator
使用 tf.train.MonitoredTrainingSession
处理启动和加入线程。您可以检查几个示例输入 fns,例如
tf.estimator.inputs.*
、tf.contrib.learn.io.read*
我正在重写我的代码以使用 tf.estimator.Estimator 作为我的模型的封装对象。 问题是 : 我看不出典型的输入管道如何适合图片。
我的输入管道使用由 tf.train.Coordinator
协调的队列。
为了满足 tf.estimator.Estimator
要求,我在 init_fn
函数中创建了所有 "input graph",调用时传递给估算器:
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 class 是否准备好使用队列?
Estimator
使用 tf.train.MonitoredTrainingSession
处理启动和加入线程。您可以检查几个示例输入 fns,例如
tf.estimator.inputs.*
、tf.contrib.learn.io.read*