1. 程式人生 > >TensorFlow筆記(7)-----實戰Google深度學習框架----隊列與多線程

TensorFlow筆記(7)-----實戰Google深度學習框架----隊列與多線程

一起 width nbsp stop 之前 圖片 第一個 queue enqueue

一、創建一個隊列:

FIFOQueue:先進先出

RandomShuffleQueue:會將隊列中的元素打亂,每次出列操作得到的是從當前隊列所有元素中隨機選擇的一個。

二、操作一個隊列的函數:

enqueue、enqueue_many、dequeue

import tensorflow as tf

#創建一個先進先出隊列,指定隊列中最多可以保存兩個元素,並指定類型為整數
q = tf.FIFOQueue ( 2, "int32" )

#使用enqueue_many 函數來初始化隊列中的元素。
 init = q.enueue_many( ( [0,10],))

#使用Dequeue函數將隊列中的第一個元素出隊列
x = q.dequeue() #入列 q_inc = q.enqueue([x]) #將x出列又入列 with tf.Session() as sess: sess.run( [x,q_inc])

三、多線程協同:

tf.Coordinator :

用於協同多個線程一起停止,並提供了should_stop、request_stop、join三個函數。在啟動線程之前,需要先聲明一個tf.Coordinator類中提供的should_stop函數,當這個函數的返回值為True時,則當前線程也需要退出。每一個啟動的線程都可以通過調用request_stop函數來通知其他線程退出。當某一個線程調用request_stop函數之後,should_stop函數的返回值將被設置為True,這樣其他的線程就可以同時終止了。

tf.QueueRunner

技術分享圖片

技術分享圖片

TensorFlow筆記(7)-----實戰Google深度學習框架----隊列與多線程