【兼容調試】pytorch出現RuntimeError: CUDA out of memory時的一些解決方法

代碼方面

  1. 改小batch size
  2. 要適當刪除沒用的中間變量(雖然效果不大)

    比如:del output

  3. train的時候,累加loss 一定要+=loss.item(),不然會把loss的history也加進去,又佔顯存了
  4. 同理2,及時detach()

    比如rnn decoder的輸出中把上一個時間步的輸出作爲下一個時間步的輸入,那麼這個輸入完全就可以.detach()

  5. valid or test的時候,一定要with torch.no_grad()
  6. torch.cuda.empty_cache() 清除顯存

外部方面
換個大顯存的GPU…
當然有這個錢的話就不會有遇到這個error了…
所以
如果不能拓展顯存,那麼就及時關閉佔用顯存的軟件,因爲我剛剛同時開了pr,佔了幾百M,關了以後明顯佔用小了300m
然後重啓一下pycharm也會結束這個進程 釋放一些因爲在佔用沒法完全清楚的顯存 (也就大概200m吧)

Nvidia-smi 查看顯存佔用的情況哈

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章