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

问题描述

在运行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() # 加上这句话

你可能感兴趣的:(python运行错误解决方案,python,pytorch,深度学习)