1

這是很容易使用一個不斷從隊列中把數據輸入到queue和其他消耗數據兩個線程,執行計算。 。由於TensorFlow之後1.2.0建議Dataset作爲輸入管道,我想用Dataset及其iterator完成任務上面,即:如何啓用數據集管道已分發的閱讀和消費

  1. 有兩種過程,一個飼料和其他消耗;
  2. 管道暫停要麼是滿或空當計算完成的消耗停止。

附:爲什麼在Threading and Queues的教程中,TensorFlow使用thread而不是process

預先感謝您。

+0

[這個問題](https://stackoverflow.com/questions/44132579/feed-data-into-a-tf-contrib-data-dataset-like-a-queue)是相關的,或者可能是相同的問題。 – Albert

回答

1

分佈式tf.contrib.data管道還不支持爲TensorFlow 1.3。我們正在努力支持跨設備和/或流程拆分數據集,但該支持尚未準備就緒。

在此期間,要實現自己的目標的最簡單的方法是使用tf.FIFOQueue。您可以定義一個Dataset從隊列內容如下:

q = tf.FIFOQueue(...) 

# Define a dummy dataset that contains the same value repeated indefinitely. 
dummy = tf.contrib.data.Dataset.from_tensors(0).repeat(None) 

dataset_from_queue = dummy.map(lambda _: q.dequeue()) 

然後,您可以編寫其他Dataset tranformations與dataset_from_queue

+0

何時會添加對分佈式數據集的支持? –

+0

非常感謝您的親切回答。如果您在完成分佈式「tf.contrib.data」工作後願意更新或發佈新答案,我也將不勝感激。@ mrry – Tengerye