if reserved memory>>allocated memory try setting max_split_size_mb==128mb,See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
遇到这个错表明需要整理碎片化显存,释放出能够用于运行的容量。
解决办法:
跑模型前添加下面代码,将小于128mb大小的空闲显存block重新分配:
import os
os.environ["PYTOCH_CUDA_ALLOC_CONF"]="max_split_size_mb:128"
能解决大部分的显存问题!!
若还是不行,请在训练前添加以下代码,清理缓存:
if hasattr(torch.cuda,'empty_cache'):
torch.cuda.empty_cache()
这样应该就能成功运行啦!!
希望我的解答有所帮助!