方法1:统计模型参数量

total = sum([param.nelement() for param in model.parameters()])

print("Number of parameter: %.2fM" % (total/1e6))

方法2:统计flops和参数量

pip install thop

from thop import profile

dummy_input = torch.randn(1, 3, 32, 32)#.to(device)

flops, params = profile(model, (dummy_input,))

print('flops: ', flops, 'params: ', params)

print('flops: %.2f M, params: %.2f M' % (flops / 1000000.0, params / 1000000.0))

问题:当网络中有自定义参数时,flops和params就很有可能漏掉那部分参数

方法3:统计macs指标和参数量

pip install ptflops

from ptflops import get_model_complexity_info

macs, params = get_model_complexity_info(model, (3, 32, 32), as_strings=True, print_per_layer_stat=True)

print('{:<30}  {:<8}'.format('Computational complexity(macs): ', macs))

print('{:<30}  {:<8}'.format('Number of parameters(params): ', params))

问题:当网络中有自定义参数时,macs就很有可能漏掉那部分参数

方法4:统计模型参数所占内存

def get_parameter_number(net):

total_num = sum(p.numel() for p in net.parameters())

trainable_num = sum(p.numel() for p in net.parameters() if p.requires_grad)

return {'Total': total_num/ 1000000.0, 'Trainable': trainable_num/ 1000000.0}

#查看网络参数

print(get_parameter_number(model))

方法5:stat(cpu统计)

pip install torchstat

from torchstat import stat

stat(model, (3, 32, 32))

问题:当网络中有自定义参数时,就很有可能漏掉那部分参数对应的统计量

方法6:summary网络结构对应参数(cuda上面统计)

pip install torchsummary

from torchsummary import summary

summary(model.cuda(),input_size=(3,32,32),batch_size=-1)

问题:当网络中有自定义参数时,就很有可能漏掉那部分参数

6种方法计算神经网络参数量Params、计算量FLOPs、Macs简单代码相关推荐

  1. 神经网络的参数量(Params)和计算量(FLOPs)

    定义 参数量(Params) 参数量是指模型训练中需要训练的参数总数.用来衡量模型的大小(计算空间复杂度). 计算量(FLOPs) 浮点运算次数,理解为计算量(计算时间复杂度),可以用来衡量算法的复杂 ...

  2. 神经网络的计算量(FLOPs)、参数量(Params)、推理时间(FPS)的定义及实现方法

    目录 1. 定义 2. 实现方法 2.1. 计算参数量 2.2. 计算参数量和FLOPs 2.3. 计算推理时间(FPS) 3. 数据大小对参数量和FLOPs的影响 4. 参数量和FLOPs对于硬件要 ...

  3. 【深度学习】深度学习中模型计算量(FLOPs)和参数量(Params)等的理解以及四种在python应用的计算方法总结

    接下来要分别概述以下内容: 1 首先什么是参数量,什么是计算量 2 如何计算 参数量,如何统计 计算量 3 换算参数量,把他换算成我们常用的单位,比如:mb 4 对于各个经典网络,论述他们是计算量大还 ...

  4. 【25】模型参数量Params与计算量Flops的计算方法

    文章目录 1. 推导公式 1.1 CNN Params 1.2 CNN Flops 1.3 Linear Params 1.4 Linear Flops 2. 计算方法 2.1 parameters法 ...

  5. pytorch计算模型参数量

    1. 安装 thop 1.1 常规安装 pip install thop 1.2 若上述安装方式错误,可以参考以下方式: pip install thop-i http://pypi.douban.c ...

  6. 路由跳转四种方法(带参)

    路由跳转四种方法(带参) 方式1.router-link 1. 不带参数<router-link :to="{name:'home'}"> <router-lin ...

  7. 2000-2020全要素生产率OP法+LP法+OLS和固定效应法三种方法合集含原始数据和计算过程Stata代码

    2000-2020全要素生产率OP法+LP法+OLS和固定效应法三种方法合集含原始数据和计算过程Stata代码 1.时间:OP法:2008-2020年.LP法2000-2020年.OLS和固定效应法2 ...

  8. 模型计算量(FLOPs)和参数量(Params)的理解

    (1)换算 以alexnet为例: 参数量:6000万 设每个参数都是float,也就是一个参数是4字节, 总的字节数是24000万字节 24000万字节= 24000万/1024/1024=228m ...

  9. 模型参数量(Params)/模型大小 Pytorch统计模型参数量

    模型参数量大小可以从保存的checkpoint文件直观看出来 total_params = sum(p.numel() for p in model.parameters()) total_param ...

最新文章

  1. python网络爬虫的基本步骤-详解Python网络爬虫功能的基本写法
  2. 排序箭头,升序,降序简单实现
  3. LinuxC-运算符
  4. Java并发编程-volatile关键字介绍
  5. pip安装cinrad
  6. 【Elasticsearch】es Root mapping definition has unsupported parameters
  7. android中读取properties文件
  8. javascript RegExp正则表达式
  9. PHP清除HTML代码、空格、回车换行符的函数
  10. GDAL源码剖析(四)之命令行程序说明一
  11. Bootstrap页面布局18 - BS导航路径以及分页器
  12. sqlsever2012评估期已过
  13. 计算机网络中最常用的三种设备,计算机网络基础试卷6
  14. java远古部落7723_远古传说之华夏浩劫
  15. MTK 驱动开发---Vibrator
  16. php 5.0入门系列教程 pdf,ThinkPHP5.0-快速入门手册(新手教程版).pdf
  17. 【软件测试】以闭环思维解决BUG复现率高问题
  18. CGCS2000 平面坐标系转大地坐标系
  19. 在区块链底下,个人自由和隐私该如何生存?
  20. PS照片美化处理实例教程

热门文章

  1. AE2022 Ver22.3内容更新点汇总 一文了解AE2022最新版本
  2. avaya基本配置方法
  3. 阿里IOT云平台(二)---10分钟物联网设备接入阿里云IoT平台
  4. 【题解】【PTA-Python题库】第6章-7 找出总分最高的学生 (15 分)
  5. 真正的小说 真正的生活 真正的蜕变 真正的品味
  6. intellij idea 类和文件夹(目录)左上角出现小叉号
  7. Unity做动画不播放解决方案之一
  8. 文件夹的使用、常见术语缩写
  9. 整理的一些关于手机拍照技巧的内容
  10. python excel条件格式_关于python调用Excel“条件格式”——二探openpyxl