2016-08-29 34 views
5

Ben öğeleri enqueue diğer oturumlar kalan tüm öğeleri sıradan çıkarma emin olmak için sıraya kapatmak, bir sonraki dönem için daha sonra yeniden açmak istiyorum. Mümkün mü?bir TensorFlow kuyruğu yeniden açıldı edilebilir mi?

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

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

cevap

10

kapalı bir kuyruk yeniden açmak için bir yolu yoktur, ancak (birden çok oturum içerisinde yalnızca,) bir çözüm ::

  1. sarar bir with tf.container(name): blokta Sıranıza oluşturun var sadece kuyruklar ve name başka tf.container() bloklar için kullanılmaz nerede.

  2. Eğer bu kuyruk bir sonraki kullanımda yeniden oluşturulması neden olur, kuyruğunu yeniden name 1. adımda oluşturulan kabın adıdır tf.Session.reset(..., [name]), aramak istediğiniz önce, Parti açılmış olacak belirtmek, bildirmek.

+0

teşekkürler tekrar tekrar! :) – MiniQuark

+0

Teşekkürler, tam olarak aradığım şey! – lhlmgr

+7

Noktalar yerine ne eklersiniz? Tf.Session.reset (target = None, [name]) 'dediğimde, oturum kapatılacak. O zaman yeni bir oturum oluşturmalı mıyım? Şerefe! – lhlmgr

İlgili konular