提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
想要优化一个深度学习算法,那么首先要弄清的四个内容便是他的参数量,运算量,运算时的占用内存,占用显存,最后再考虑用什么样的方式去优化,该在哪里优化。
提示:以下是本篇文章正文内容,下面案例可供参考
一、模型所用参数
#示例: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进行监测