东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2489|回复: 0
打印 上一主题 下一主题

[课堂笔记] pytorch前向计算显存占用太大,如何破?

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14437
QQ
跳转到指定楼层
楼主
发表于 2020-5-9 09:01:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有一个pytorch版的人脸检测模型  模型本身只有7.4M


但是在进行前向计算时 显存的占用非常大 输入图片比较小还好 一旦大点的图片 马上报CUDA显存不足 退出啦
RuntimeError: CUDA out of memory


经测:
模型输入的x: torch.Size([1, 3, 416, 320])   显存占用1025M
模型输入的x: torch.Size([1, 3, 768, 1024])  显存占用1805M
模型输入的x: torch.Size([1, 3, 1152, 2048])  显存占用3819M

模型输入的x: torch.Size([1, 3, 1088, 1920])   显存占用3486M
模型输入的x: torch.Size([1, 3, 3648, 2752])   RuntimeError: CUDA out of memory





解决方法:
在模型预测的代码上包一下:
with torch.no_grad():
    predict = model(inputs)


with torch.no_grad():
    hm, box, landmark = model(torch_image)


加了之后经测:
模型输入的x: torch.Size([1, 3, 416, 320])   显存占用905M
模型输入的x: torch.Size([1, 3, 768, 1024])  显存占用1027M
模型输入的x: torch.Size([1, 3, 1152, 2048])  显存占用1343M
模型输入的x: torch.Size([1, 3, 1088, 1920])   显存占用1394M

模型输入的x: torch.Size([1, 3, 3648, 2752])   显存占用2843M





让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-5-3 20:57 , Processed in 0.169463 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表