当前位置:   article > 正文

python pytorch爆显存,内存溢出问题解决方法(总结)RuntimeError: CUDA out of memory._torch 显存溢出异常处理

torch 显存溢出异常处理

问题描述

在运行python程序时,随运行时间增长,内存疯狂增加,直至运行内存爆满,出现以下错误:

RuntimeError: CUDA out of memory.
  • 1

解决方法:

1.在模型验证和测试前加上【with torch.no_grad():】这句话。

with torch.no_grad():  # 加上这句话
	for ts_batch in train_gaussian_loader:
    	output = self.model(ts_batch)
  • 1
  • 2
  • 3

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() # 加上这句话
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/127450
推荐阅读
相关标签
  

闽ICP备14008679号