import tensorflow as tf
#创建一个先进先出的队列,指定队列中最多可以保存2个元素,并指定类型为整数
q = tf.FIFOQueue(2, "int32")
#使用enqueue_many函数来初始化队列中的元素,在队列使用前必须明确的调用这个初始化过程
init = q.enqueue_many(([0, 10],))
#使用dequeue函数将队列中的第一个元素出队列,这个变量被保存在变量x中
x = q.dequeue()
#将得到的值+1
y = x + 1
#将+1后的值重新加入队列
q_inc = q.enqueue([y])
with tf.Session() as sess:
#运行初始化队列的操作
init.run()
for _ in range(5):
#运行q_inc将执行数据出队列、出队的元素+1、重新加入队列的整个过程
v, _ = sess.run([x, q_inc])
#打印出队列元素的值
print v
上面介绍的FIFOQueue队列,这是一种先进先出队列。在TensorFlow中还有一种队列是RandomShuffleQueue,这种队列会将队列中的元素打散,每次出队列看到的是从当前队列所有元素中随机选取的一个。