TensorFlow 队列多线程

1.创建队列

Q=tf.FIFOQueue(10000,tf.float32)

10000 :队列大小
tf.float32: 队列数据类型
2.创建数据

var = tf.Variable(0.0)
data = tf.assign_add(var, tf.constant(1.0))

3.将数据放入队列

en_q=Q.enqueue(data)

4.创建队列管理器

qr=tf.train.QueueRunner(Q,enqueue_ops=[en_q]*2)

5.创建线程管理器

coor=tf.train.Coordinator()

6.开启线程

threads=qr.create_threads(sess,coord=coord,start=True)

7.回收线程

coord.request_stop()
coord.join()

完整代码

import tensorflow as tf

Q = tf.FIFOQueue(1000, tf.float32)
var = tf.Variable(0.0)
data = tf.assign_add(var, tf.constant(1.0))

en_q = Q.enqueue(data)

qr = tf.train.QueueRunner(Q, enqueue_ops=[en_q] * 2)
init = tf.initialize_all_variables()

with tf.Session() as sess:
    sess.run(init)
    coord = tf.train.Coordinator()
    threads = qr.create_threads(sess, coord=coord, start=True)
    for i in range(200):
        print(sess.run(Q.dequeue()))
    coord.request_stop()
    coord.join()

你可能感兴趣的:(python,tensorflow)