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