问题描述
在运行python程序时,随运行时间增长,内存疯狂增加,直至运行内存爆满,出现以下错误:
RuntimeError: CUDA out of memory.
解决方法:
1.在模型验证和测试前加上【with torch.no_grad():】这句话。
with torch.no_grad(): # 加上这句话
for ts_batch in train_gaussian_loader:
output = self.model(ts_batch)
2.在出错的代码上添加释放内存的代码:
with torch.no_grad():
for ts_batch in train_gaussian_loader:
try: # 加上这句话
output = self.model(ts_batch) # 出错的地方
except RuntimeError as exception: # 加上这句话
if "out of memory" in str(exception): # 加上这句话
print('WARNING: out of memory') # 加上这句话
if hasattr(torch.cuda, 'empty_cache'): # 加上这句话
torch.cuda.empty_cache() # 加上这句话