6种方法计算神经网络参数量Params、计算量FLOPs、Macs简单代码
方法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简单代码相关推荐
- 神经网络的参数量(Params)和计算量(FLOPs)
定义 参数量(Params) 参数量是指模型训练中需要训练的参数总数.用来衡量模型的大小(计算空间复杂度). 计算量(FLOPs) 浮点运算次数,理解为计算量(计算时间复杂度),可以用来衡量算法的复杂 ...
- 神经网络的计算量(FLOPs)、参数量(Params)、推理时间(FPS)的定义及实现方法
目录 1. 定义 2. 实现方法 2.1. 计算参数量 2.2. 计算参数量和FLOPs 2.3. 计算推理时间(FPS) 3. 数据大小对参数量和FLOPs的影响 4. 参数量和FLOPs对于硬件要 ...
- 【深度学习】深度学习中模型计算量(FLOPs)和参数量(Params)等的理解以及四种在python应用的计算方法总结
接下来要分别概述以下内容: 1 首先什么是参数量,什么是计算量 2 如何计算 参数量,如何统计 计算量 3 换算参数量,把他换算成我们常用的单位,比如:mb 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法 ...
- pytorch计算模型参数量
1. 安装 thop 1.1 常规安装 pip install thop 1.2 若上述安装方式错误,可以参考以下方式: pip install thop-i http://pypi.douban.c ...
- 路由跳转四种方法(带参)
路由跳转四种方法(带参) 方式1.router-link 1. 不带参数<router-link :to="{name:'home'}"> <router-lin ...
- 2000-2020全要素生产率OP法+LP法+OLS和固定效应法三种方法合集含原始数据和计算过程Stata代码
2000-2020全要素生产率OP法+LP法+OLS和固定效应法三种方法合集含原始数据和计算过程Stata代码 1.时间:OP法:2008-2020年.LP法2000-2020年.OLS和固定效应法2 ...
- 模型计算量(FLOPs)和参数量(Params)的理解
(1)换算 以alexnet为例: 参数量:6000万 设每个参数都是float,也就是一个参数是4字节, 总的字节数是24000万字节 24000万字节= 24000万/1024/1024=228m ...
- 模型参数量(Params)/模型大小 Pytorch统计模型参数量
模型参数量大小可以从保存的checkpoint文件直观看出来 total_params = sum(p.numel() for p in model.parameters()) total_param ...
最新文章
- python网络爬虫的基本步骤-详解Python网络爬虫功能的基本写法
- 排序箭头,升序,降序简单实现
- LinuxC-运算符
- Java并发编程-volatile关键字介绍
- pip安装cinrad
- 【Elasticsearch】es Root mapping definition has unsupported parameters
- android中读取properties文件
- javascript RegExp正则表达式
- PHP清除HTML代码、空格、回车换行符的函数
- GDAL源码剖析(四)之命令行程序说明一
- Bootstrap页面布局18 - BS导航路径以及分页器
- sqlsever2012评估期已过
- 计算机网络中最常用的三种设备,计算机网络基础试卷6
- java远古部落7723_远古传说之华夏浩劫
- MTK 驱动开发---Vibrator
- php 5.0入门系列教程 pdf,ThinkPHP5.0-快速入门手册(新手教程版).pdf
- 【软件测试】以闭环思维解决BUG复现率高问题
- CGCS2000 平面坐标系转大地坐标系
- 在区块链底下,个人自由和隐私该如何生存?
- PS照片美化处理实例教程
热门文章
- AE2022 Ver22.3内容更新点汇总 一文了解AE2022最新版本
- avaya基本配置方法
- 阿里IOT云平台(二)---10分钟物联网设备接入阿里云IoT平台
- 【题解】【PTA-Python题库】第6章-7 找出总分最高的学生 (15 分)
- 真正的小说 真正的生活 真正的蜕变 真正的品味
- intellij idea 类和文件夹(目录)左上角出现小叉号
- Unity做动画不播放解决方案之一
- 文件夹的使用、常见术语缩写
- 整理的一些关于手机拍照技巧的内容
- python excel条件格式_关于python调用Excel“条件格式”——二探openpyxl