2016-11-14 35 views
0

我使用Tensorflow的批量輸入管道,該管道使用tf.train.slice_input_producer並使用tf.train.shuffle_batch從中讀取批量。Tensorflow生產者 - 在內存中加載完整數據集以避免磁盤瓶頸

問題是,對於簡單的模型,每個批次的完成速度比輸入生產者可以從磁盤讀取下一批次到隊列中快。磁盤沒有足夠的帶寬。但是,完整的數據集將適合內存。

有沒有一種方法可以修改Tensorflow生產者將完整的數據集讀入內存,而不是從磁盤流式傳輸?

回答

0

我建議使用tf.train.start_queue_runners和tf.train.Coordinator設置隊列。詳細信息請參見here

+0

我的確在使用隊列跑步者。問題在於,磁盤訪問速度不夠快,隊列運行者無法保持隊列已滿。目前還不清楚製片人是否會在第一個時代之後將圖像保存在內存中,或者是否會繼續以循環方式重新加載它們。 – user745668

+0

不知道你在使用什麼API,但是如果你使用的是tf.read_batch_examples(),有num_threads(用於排隊)和隊列容量。這有幫助嗎?我在想,如果它的磁盤訪問速度不夠快,但隊列大小不夠大等等 –