队列和队列管理器
tensorflow提供的队列:
队列
tf.FIFOQueue介绍:
fifoqueue
import tensorflow as tf
"""tensorflow当中,运行操作有依赖性"""
# 模拟同步处理数据
# 1. 定义队列
Q = tf.FIFOQueue(capacity=3, dtypes=tf.float32, )
# 放入一些数据
enq_many = Q.enqueue_many([[0.1, 0.2, 0.3],]) #放数据的op
# 2. 定义一些处理数据,取数据的过程 取数据 +1 入队列
out_q = Q.dequeue()
data = out_q + 1 #out_q是数据
en_q = Q.enqueue(data)
# 会话之前基本是定义图的过程
with tf.Session() as sess:
#初始化队列
sess.run(enq_many)
#处理数据
for i in range(100):
sess.run(en_q) #由于tensorflow里面的操作有依赖性,所以这里的run了en_q时,同时执行了out_q + 1,因为这是数据来源,而由于out_q来源于out_q,所以也会执行Q.dequeue
#亦即,这里确实是连续执行了100次,每一次实际上包含三个操作。最终队列里面还是只有三个数据
for i in range(Q.size().eval()): #Q.size()是op,要运行里面的值,就必须eval()
print(sess.run(Q.dequeue()))
"""输出结果:
33.2
33.3
34.1
"""
注意:tensorflow中操作的依赖性
网友评论