2016-08-29 15 views
5

私はアイテムをエンキューしたい、キューを閉じて他のセッションが残りのアイテムをすべてデキューし、次のエポックのために後で再び開くようにしたい。これは可能ですか?TensorFlowキューを閉じた後で再度開くことはできますか?

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

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

答えて

10

は、閉じたキューを再オープンする方法はありませんが、(あなたが複数のセッションを使用している場合のみ)の回避策::

  1. ラップwith tf.container(name):ブロックであなたのキューを作成しますがあります他のtf.container()ブロックにはnameが使用されていません。 nameこれは、キューがその次の使用に再作成されることになりますし、それが開かれたになります手順1で作成したコンテナの名前です

  2. キューを再度開く前に、tf.Session.reset(..., [name])を呼び出すには、状態。

+0

ありがとうございました! :) – MiniQuark

+0

ありがとう、ちょうど私が探していたthats! – lhlmgr

+7

ドットの代わりに何を挿入しますか? 'tf.Session.reset(target = None、[name])'を呼び出すと、セッションは閉じられます。新しいセッションを作成する必要はありますか?乾杯! – lhlmgr

関連する問題