[PyTorch]一个非常好的抢救outofmemory的方法

  • 如果模型在运行了一些时间后出现的outofmemory,那么有可能是因为无用的临时变量太多了,我们需要使用torch.cuda.empty_cache()进行清理就可以了。
try:
    loss, outputs = model(src, lengths, dec, targets)
except RuntimeError as e:
    if 'out of memory' in str(e):
        print('| WARNING: ran out of memory')
        if hasattr(torch.cuda, 'empty_cache'):
            torch.cuda.empty_cache()
    else:
        raise e
  • 如果这一批数据中有一个很长的句子容易导致oom那么就跳过这个句子
except RuntimeError as e:
    if 'out of memory' in str(e):
        print('| WARNING: ran out of memory, skipping batch')
        ooms += 1
        self.zero_grad()
    else:
        raise e
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前端开发者丨http请求 https:www.rokub.com 前言见解有限, 如有描述不当之处, 请帮忙指出,...
    麋鹿_720a阅读 13,805评论 11 31
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,227评论 2 89
  • 第三章 来自曙光的邀请函 距离曙光最近的地方,是车水马龙的繁华,是灯红酒绿的奢靡,也只有那里才能让人们忘记夜的黑。...
    鲤修缘阅读 2,472评论 0 0
  • 第一次感觉年轻真好是二零一零年,百无聊赖的上午,窝在沙发里看球赛。年轻的詹姆斯带领年轻的骑士主场迎战三巨头领衔的老...
    花海彩虹阅读 1,684评论 0 1
  • 文/苑子 你静静的坐在那里, 我静静的看着你。 我撩了下刘海,眼神深情,嘴角上扬, 突然你看向我,温柔的目光看到了...
    苑子Love阅读 2,844评论 0 2

友情链接更多精彩内容