日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tensorflow随笔-队列管理器QueueRunner-生产者与消费者

發布時間:2025/3/12 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tensorflow随笔-队列管理器QueueRunner-生产者与消费者 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# -*- coding: utf-8 -*- """ Spyder EditorThis is a temporary script file. """ #生產者與消費者 import tensorflow as tfqueue=tf.FIFOQueue(100,"float") num=tf.random_uniform([1],1,50,tf.float32) eQueue=queue.enqueue(num) #隊列管理器 qr=tf.train.QueueRunner(queue,enqueue_ops=[eQueue]*1) #主線程 with tf.Session() as sess:sess.run(tf.global_variables_initializer())sess.run(eQueue)#另外開一個入隊線程enqueueThreads=qr.create_threads(sess,start=True)#主線程出隊for i in range(10):print(sess.run(queue.dequeue()))

[16.1576]
[42.464508]
[13.7773485]
[39.160828]
[44.308994]
[30.80474]
[37.00065]
[2.7175977]
[32.29577]
[6.0784574]

(1)隊列管理器單獨開線程進行入隊操作
(2)主線程進行出隊操作
從而完成生產者與消費者模型

隊列是使用多線程異步計算張量的一種方便的TensorFlow機制。例如,在規范的“input Reader”設置中,一組線程在隊列中生成文件名;第二組線程從文件中讀取記錄,對其進行處理,并將張量放入第二隊列;第三組線程從這些輸入記錄中取出隊列來構造批,并通過培訓操作運行它們。

當以這種方式運行多個線程時,存在幾個微妙的問題:在輸入耗盡時按順序關閉隊列、正確捕獲異常并報告異常,等等。

QueueRunner與協調器一起幫助處理這些問題

__init__(queue=None,enqueue_ops=None,close_op=None,cancel_op=None,queue_closed_exception_types=None,queue_runner_def=None,import_scope=None )

enqueue_ops:稍后將在線程中運行的enqueue ops 入隊OPS列表

create_threads(sess,coord=None,daemon=False,start=False )

創建線程來運行給定Session的入隊操作。

此方法需要啟動圖graph的Session。它創建一個線程列表,可以選擇啟動它們。enqueue_ops中傳遞的每個op都有一個線程。

coord參數是一個可選的協調器,線程將使用它一起終止并報告異常。如果給定一個協調器,此方法將啟動一個附加線程,以便在協調器請求停止時關閉隊列。

如果先前為給定會話創建的線程仍在運行,則不會創建任何新線程。

總結

以上是生活随笔為你收集整理的tensorflow随笔-队列管理器QueueRunner-生产者与消费者的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。