2

我正在努力在celebA上培訓DCGAN。培訓過程似乎進行得非常緩慢,我想弄清楚是什麼造成了瓶頸。當我使用規模級STANDARD_1,BASIC_GPU或僅在我的6年曆史的4核CPU筆記本電腦上本地運行時,訓練一個時期需要的時間似乎非常相似。在這三種配置中,每個訓練步驟大約需要25秒,但我注意到每隔一段時間訓練一步需要幾分鐘的時間。搞清Cloud ML培訓中的瓶頸

使用BASIC_GPU時,CPU利用率小於.1。我使用BASIC層進行了一項實驗,並將主盤託空間設置爲.4,每步大約需要40秒。當使用標準_1,我得到以下CPU利用率:

  • 主:0.28
  • 工人:0.21
  • 參數服務器(PS):0.48

基本運行時使用單個工作人員,CPU利用率不應該接近100%?

以這樣的速度,它將花費22個小時來培訓一個celebA的時代,圖像縮小到64x64。從回購看其他人的培訓日誌,看起來這比其他人使用GPU進行培訓要高得多。

+0

你能提供一個指向你提到的其他培訓日誌的指針嗎? – rhaertel80

+0

這個人似乎平均每個批次少於2秒:https://github.com/carpedm20/DCGAN-tensorflow/issues/34 – psoulos

回答

1

我只是猜測這裏 - 但考慮看看你點代碼,培訓做了兩兩件事:

  1. 用途餵養,即加載數據的蟒蛇 - 使用閱讀器隊列(https://www.tensorflow.org/programmers_guide/reading_data )可能會更快。

  2. 這更可能。代碼一次讀取一個文件或一批文件,但每個文件都會導致對雲存儲的單獨請求,所以不會從緩衝等優化中受益。這意味着您的代碼可能會受到I/O限制,而且可能會解釋較低的CPU使用率。此外,添加GPU可能會進一步將工作卸載到GPU上,並降低CPU利用率......仍然忙於I/O。

不知道這是否有幫助,但它可能會提供一些指針。