0
我使用TensorFlow來實現一箇中性網絡,並希望實現這樣的體系結構:有2個隊列,即Q1和Q2。 Q1用一些文件名初始化,Q2將在後面填入例子。如何實現張量流中的雙隊列結構
每次會話運行一個步驟時,文件名將從Q1彈出,並進入處理部分。在處理部分中,從文件中讀取數據,並且從數據生成一些(例如32)不同的示例。然後,生成的32個示例將排入Q2。如果Q2達到了一定限度,則會出現一批示例。
特別是,我每生成一個文件就會產生近1M的例子,所以這樣的進程必須在後臺運行,避免阻塞主線程,排入Q2必須是異步的。
我未能找到解決方案。我曾嘗試類似以下內容:
import tensorflow as tf
q1 = tf.FIFOQueue(capacity=32, dtypes=tf.int32)
init_op = q1.enqueue_many(([0, 1, 2],))
q2 = tf.FIFOQueue(capacity=64, dtypes=tf.int32)
r = q1.dequeue()
# mimic generating examples from data read from the file
for i in range(10):
enq_op = q2.enqueue(r * 10 + i)
s = q2.dequeue()
sess = tf.InteractiveSession()
sess.run(init_op)
# don't know what to do
sess.close()
任何人都可以幫忙!
嗨!感謝您的回覆,我確實意識到我誤解了這兩個概念。現在我相信我對他們很清楚,並且做了一些嘗試,但仍然失敗。你能看看我的新問題並給我一些幫助嗎? http://stackoverflow.com/questions/37797751/running-queue-in-background-in-tensorflow-causes-strange-exceptions – HanXu