如何计算一个深度学习模型中的参数量、运算量,占用内存,占用显存

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

想要优化一个深度学习算法,那么首先要弄清的四个内容便是他的参数量,运算量,运算时的占用内存,占用显存,最后再考虑用什么样的方式去优化,该在哪里优化。

提示:以下是本篇文章正文内容,下面案例可供参考

一、模型所用参数

#示例:flownet为一个深度学习模型
            params = self.flownet.parameters()
            num_params = 0
            for param in params:
                num_params += torch.prod(torch.tensor(param.size()))
            print('模型参数量:', num_params)

首先用nn.Module继承来的函数获取模型参数params,然后param.size()返回参数的维度,torch.prod()计算这些维度的乘积,从而得到单个参数的总元素数量。

二、计算复杂度分析(FLOPs)

#pip install ptflops
from ptflops import get_model_complexity_info
from torchvision.models import resnet50
model = resnet50()
flops, params = get_model_complexity_info(model, (3, 224, 224), as_strings=True, print_per_layer_stat=True)
print('Flops:  ' + flops)
print('Params: ' + params)

三、占用内存

四、占用显存

可以使用Nvida-smi进行监测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值