美文网首页
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