如何将数据从python函数排入TensorFlow队列

我有一个 python函数,当我调用它时会自动生成一个(数据,标签)对.我不知道如何将此函数附加到TensorFlow FIFOQueue,以便队列充满我的函数生成的数据.我到目前为止的代码是:

myq = tf.FIFOQueue(5000, [tf.float32, tf.float32], [[4],[1]])
enqueue_op = myq.enqueue(read_data()) # read_data() returns two numpy arrays of shape [4] and [1]
qr = tf.train.QueueRunner(myq, [enqueue_op]*2)
...
threads = qr.create_threads(sess=sess,coord=coord, start=True)

但是,这只调用函数read_data()一次并继续将相同的值推入队列.如何正确地将我的函数连接到enqueue方法,以便我可以使用我的函数中的数据填充队列(最好在后台使用多个线程).谢谢你的帮助.

最佳答案 我知道read_data是你自己的代码,而不是TF操作.您需要enqueue_op的占位符,然后使用feed_dict提供数据.

# Graph setup
x_enqueue = tf.placeholder(tf.float32, shape=(4))
y_enqueue = tf.placeholder(tf.float32, shape=(1))
enqueue_op = myq.enqueue([x_enqueue, y_enqueue])

...

# Enqueue loop:
x_read, y_read = read_data()
sess.run(enqueue_op, feed_dict={x_enqueue: x_read, y_enqueue: y_read})
点赞