TensorFlow队列在关闭后是否可以重新打开?

时间:2016-08-29 10:45:14

标签: queue tensorflow

我想将项目排队,关闭队列以确保其他会话将所有剩余项目出列,然后在下一个时期重新打开它。这可能吗?

q = tf.FIFOQueue(...)
close_q = q.close()
reopen_q = #???

with tf.Session([...]) as sess:
    [...]
    sess.run(close_q)
    [...]
    sess.run(reopen_q)

1 个答案:

答案 0 :(得分:11)

无法重新打开已关闭的队列,但(仅当您使用多个会话时)有一个解决方法::

  1. 在仅包含队列的with tf.container(name):块中创建队列,name块不用于任何其他tf.container()块。

  2. 在您想要重新打开队列之前,请调用tf.Session.reset(..., [name]),其中name是您在步骤1中创建的容器的名称。这将导致在下一个队列中重新创建队列使用,它将处于打开状态。