GPU跑模型報錯
RuntimeError: CUDA out of memory. Tried to allocate 38.00 MiB (GPU 0; 10.76 GiB total capacity; 9.71 GiB already allocated; 5.56 MiB free; 9.82 GiB reserved in total by PyTorch)
- 應(yīng)該有三個原因
- GPU還有其他進(jìn)程占用顯存,導(dǎo)致本進(jìn)程無法分配到足夠的顯存
- 緩存過多,使用
torch.cuda.empty_cache()清理緩存 - 卡不行,換塊顯存更大的卡吧
- 除此之外,注意pytorch在test時,一定要加上
with torch.no_grad():
# test process
否則會使顯存加倍導(dǎo)致OOM錯誤
- 碰到一個奇怪的事,將訓(xùn)練到一半的模型保存下來,下次訓(xùn)練加載進(jìn)來,這時加載的時候會占用一部分顯存,加載后訓(xùn)練又占用相同顯存,結(jié)構(gòu)導(dǎo)致OOM,是我程序?qū)戝e了嗎?