您的位置:首页 > 其它

多线程输入数据处理框架——队列与线程(tensorflow)

2019-02-01 17:46 204 查看

tf.Coordinator(协同多个线程一起停止)
tf.QueueRunner(启动多个线程来操作同一个队列)

import tensorflow as tf
#定义一个先进先出的队列,队列有100个实数类型的元素
queue = tf.FIFOQueue(100,"float")
#定义对列的入队操作
enqueue_op = queue.enqueue([tf.random_normal([1])])
#多个线程运行队列的入队操作
qr = tf.train.QueueRunner(queue,[enqueue_op]*5)
#加入计算图集合
tf.train.add_queue_runner(qr)
#定义出队操作
out_tensor = queue.dequeue()

with tf.Session() as sess:
#协同多个线程
coord = tf.train.Coordinator()
#启动所有的线程
threads = tf.train.start_queue_runners(sess = sess,coord = coord)
#获取队列中的取值
for _ in range(3):
print(sess.run(out_tensor)[0])
#使用tf.train.Coordinator来停止所有的线程
coord.request_stop()
#等待线程的退出
coord.join(threads)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: