我想将项目排队,关闭队列以确保其他会话将所有剩余项目出列,然后在下一个时期重新打开它。这可能吗?
q = tf.FIFOQueue(...)
close_q = q.close()
reopen_q = #???
with tf.Session([...]) as sess:
[...]
sess.run(close_q)
[...]
sess.run(reopen_q)
答案 0 :(得分:11)
无法重新打开已关闭的队列,但(仅当您使用多个会话时)有一个解决方法::
在仅包含队列的with tf.container(name):
块中创建队列,name
块不用于任何其他tf.container()
块。
在您想要重新打开队列之前,请调用tf.Session.reset(..., [name])
,其中name
是您在步骤1中创建的容器的名称。这将导致在下一个队列中重新创建队列使用,它将处于打开状态。