tensorflow队列

在TensorFlow中,队列和变量类似,都是计算图上有状态的节点。对于队列状态的操作主要有Enqueue、EnqueueMany、Dequeue。如下程序:
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,这种队列会将队列中的元素打散,每次出队列看到的是从当前队列所有元素中随机选取的一个。


猜你喜欢

转载自blog.csdn.net/dz4543/article/details/79645233