支持tf.while_loop的无限循环?

时间:2017-05-23 15:53:02

标签: tensorflow

我打算编写一个队列运行程序线程来进行一些处理。但基本上我可以将我的行动制定为某些TF操作,这取决于另一个queue.dequeue

所以,也许写这个的规范方法是:

op = make_op()
with coord.stop_on_exception():
  while True:
    session.run(op)

最后它会因OutOfRangeError例外而停止。

然而,我也可以将循环实现为图形的一部分,并按如下方式编写:

def body(last):
  with tf.control_dependencies([last]):
    return make_op()
op = tf.while_loop(
  cond=lambda: tf.constant(True),
  body=body,
  loop_vars=[tf.no_op()],
  parallel_iterations=1, back_prop=False)
with coord.stop_on_exception():
  session.run(op)

我希望这更快,因为执行循环时不会涉及Python代码。这种方法有什么缺点,或者为什么这不起作用?

0 个答案:

没有答案