TensorFlow中常用队列方法总结
TensorFlow-关于数列的笔记

一般,要创建一个队列,首先要选定数据出入类型。如上图后三个。

q=tf.FIFOQueue(3,"float")
sess=tf.Session()
init=q.enqueue_many(([0.1,0.2,0.3]))
sess.run(int)

函数的一个参数是数据的个数,3. 第二个参数是元素的类型。
TensorFlow中任何操作都是在会话中进行,session 中进行元素初始化。
接下来看一个简单应用:

import tensorflow as tf

with tf.Session() as sess:
    q = tf.FIFOQueue(3,"float")
    init = q.enqueue_many(([0.1, 0.2, 0.3],))
    init2 = q.dequeue()
    init3 = q.enqueue(1.)

    sess.run(init)
    sess.run(init2)
    sess.run(init3)

    quelen =  sess.run(q.size())
    for i in range(quelen):
        print(sess.run(q.dequeue()))

最后打打印结果是:
TensorFlow-关于数列的笔记

线程问题:

#global_variables_initializer()
import tensorflow as tf

#创建一个数列,add——op是将1叠加到counter中。
q = tf.FIFOQueue(1000,"float32")
counter = tf.Variable(0.0)
add_op = tf.assign_add(counter, tf.constant(1.0))
enqueueData_op = q.enqueue(counter)

sess=tf.Session()
qr = tf.train.QueueRunner(q, enqueue_ops=[add_op, enqueueData_op] * 2)
#这是一个队列管理器调用2个线程去完成。
sess.run(tf.global_variables_initializer())
enqueue_threads = qr.create_threads(sess, start=True)  # 启动入队线程
coord = tf.train.Coordinator()  #控制协调线程
enqueue_threads = qr.create_threads(sess, coord = coord,start=True)  
#也对队列进行操作
for i in range(10):
    
    print(sess.run(q.dequeue()))

相关文章:

  • 2021-06-16
  • 2022-12-23
  • 2021-04-10
  • 2021-10-25
  • 2021-09-04
  • 2021-10-06
  • 2021-06-24
猜你喜欢
  • 2021-10-18
  • 2021-12-06
  • 2022-12-23
  • 2021-07-25
  • 2021-11-14
  • 2021-10-04
  • 2021-09-12
相关资源
相似解决方案