美文网首页
24-tensorflow读取数据、同步模拟

24-tensorflow读取数据、同步模拟

作者: jxvl假装 | 来源:发表于2019-10-05 11:17 被阅读0次

队列和队列管理器

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中操作的依赖性

相关文章

网友评论

      本文标题:24-tensorflow读取数据、同步模拟

      本文链接:https://www.haomeiwen.com/subject/ngsuuctx.html