TensorFlow 隊列多線程

1.建立隊列線程

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

10000 :隊列大小
tf.float32: 隊列數據類型
2.建立數據code

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

3.將數據放入隊列隊列

en_q=Q.enqueue(data)

4.建立隊列管理器it

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

5.建立線程管理器io

coor=tf.train.Coordinator()

6.開啓線程thread

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

7.回收線程import

coord.request_stop()
coord.join()

完整代碼tensorflow

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()
相關文章
相關標籤/搜索