我试图了解FIFO队列操作。
假设我有一个全局定义的队列:
Q = tf.FIFOQueue(20, dtypes=tf.int32, shapes=[(1, 10)])
还有一个将几个张量排入队列的函数
def body():
y = tf.constant([[1, 2]])
y = tf.pad(y, [[0, 0], [0, 10 - tf.shape(y)[1]]], constant_values=4)
Q.enqueue(y)
return True
with tf.Session() as sess:
res = body()
print(sess.run(Q.size()) ===> 0
我了解到body
函数中的入队操作未运行,这就是为什么未填充队列大小的原因,并且当将函数作为另一个函数的一部分调用时,我不确定如何使其运行一段代码,而无需显式编写sess.run(Q.enqueue(y))
。
有一个相关的问题here,我也希望能够在while循环的正文中进行入队操作。
我应该如何重写入队操作?