PyTorch训练模型,内存泄露问题解决

引言

  • 最近采用PyTorch训练文本检测模型,遇到一个内存泄露问题,眼睁睁地看着内存一点点被占满,触发系统保护机制,被kill掉

可能出现问题地方

  • loss求和未加item()
  • num_workers过大
  • 大量使用list转tensor

最终解决方案

  • 上面几个可能,我这里都已经尝试,但是还是没有解决我这里的内存泄漏问题
  • 通过比较他人的训练代码,发现了一行神奇的代码:【出处DBNet】
    data = copy.deepcopy(self.data_list[index])
    
  • 我在我的dataset.py中加入这行代码,立马就没有内存泄漏了
  • 原因是字典内容做了修改,如果不显式地复制一份,就会存在内存泄露问题,具体可参见issue

你可能感兴趣的:(PyTorch,pytorch,深度学习,python)