深度學習訓練時GPU利用率忽高忽低如何解決?

時間 2021-05-07 03:29:28

1樓:starshine

大概率是讀取訓練資料的IO喂不飽GPU計算能力。最簡單的辦法,先把讀取資料的地方換成記憶體張量,隨機資料那種,先忽略正確性,只看GPU利用率。如果換成記憶體張量後,GPU利用率穩定了,那就是IO問題了。

想辦法優化即可。

2樓:醒了麼

可能是讀資料或者資料預處理的時間過長,讀資料部分可以嘗試把全部或者部分資料放在記憶體,也可以放固態上。

資料預處理部分有些變換是否可以固定,假如是影象資料,有些resize或者padding的操作是否可以離線處理好。

當然,適當調整dataloader讀資料的執行緒數可能也會有幫助。

3樓:人可

時間充足的時候:

檢查資料集pipline是不是寫的有問題,直接讀圖的效率能不能和訓練的速度匹配。如果不能先試試增大batch,還不能的話,對資料輸入做序列化操作(影象轉tfrecord),用tf.data api做資料輸入pipline,使用prefetch等等。

大多數時候:

終於跑起來!顯示卡利用率低?顯示卡利用率低和我模型有什麼關係(手動狗頭)。

使用GPU訓練深度模型時,GPU視訊記憶體占用低,利用率顯示為0,而CPU占用很高。請問這怎麼解決呢?

吼吼 原因 1 資料量太小,或者說你每個batch處理的資料比較小,cpu給gpu的資料直接並行處理了,沒必要占用視訊記憶體,所以不顯示占用。可以把batch size調整到整個epoch或者調大就行,如果這個時候程式占用視訊記憶體的話就是這個原因,如果還是沒有就考慮其他原因。2 第二個原因,你沒表...

深度學習中多GPU訓練是否等價於增大batch size?

小朱 據我所知,單機多GPU資料並行可能帶來的影響有 優化意義上 增大batch size,由於大batch的梯度的variance更小,多數情況下達到收斂所需要的batch數更少。如果非同步更新引數的話,可能會增加達到收斂所需要的樣本數。具體實現上 由於每個GPU只處理並行batch的一部分,因此...

如何利用深度學習實現影象識別?

大煎餅 借助卷積神經網路或其變體,就可以實現。1 卷積神經網路 卷積神經網路最開始是用於手寫數字的識別,後來也用於影象中物體的識別。卷積神經網路 2 殘差網路 殘差網路是卷積神經網路的改進,新增了跨層連線。殘差網路 3 殘差收縮網路 殘差收縮網路 1 2 在殘差網路中又加入了軟閾值化,減輕了雜訊的影...