主要原因是沒有進行及時的內存回收,導致顯卡內存暴增:
解決方式:
在每個batch 反向傳播後,加上下面的內存回收:
del loss
torch.cuda.empty_cache()
gc.collect()
另外一點是建議用loss.detach().item()來從graph中分離,這樣內存佔用會少一點,因爲如果使用loss.item(),它默認的整個graph
主要原因是沒有進行及時的內存回收,導致顯卡內存暴增:
解決方式:
在每個batch 反向傳播後,加上下面的內存回收:
del loss
torch.cuda.empty_cache()
gc.collect()
另外一點是建議用loss.detach().item()來從graph中分離,這樣內存佔用會少一點,因爲如果使用loss.item(),它默認的整個graph