当前位置: 首页 > news >正文

【深度学习】常见评估指标Params、FLOPs、MACs

三个常见的评估指标:Params、FLOPs、MACs

Params (参数量)

定义:模型中所有可学习参数的总和

计算方式:

Params=∑l=1L(Cinl×Coutl×Khl×Kwl+Coutl)\text{Params} = \sum_{l=1}^{L} (C_{\text{in}}^l \times C_{\text{out}}^l \times K_h^l \times K_w^l + C_{\text{out}}^l)Params=l=1L(Cinl×Coutl×Khl×Kwl+Coutl)

其中:
• L:网络层数
Cin/CoutC_{\text{in}}/C_{\text{out}}Cin/Cout:输入/输出通道数
Kh×KwK_h \times K_wKh×Kw:卷积核尺寸
物理意义:

  • 模型复杂度与记忆能力的直接体现
  • 决定模型文件大小和内存占用

典型值域:

  • 轻量级模型:<5M (如MobileNetV3-1.0x)
  • 中等模型:5-50M (如ResNet50)
  • 大型模型:>50M (如ViT-Large)

FLOPs (浮点运算次数)

定义:完成一次前向传播所需的浮点运算总量

计算方式:

FLOPs=∑l=1L(2×Cinl×Coutl×Khl×Kwl×Houtl×Woutl)\text{FLOPs} = \sum_{l=1}^{L} (2 \times C_{\text{in}}^l \times C_{\text{out}}^l \times K_h^l \times K_w^l \times H_{\text{out}}^l \times W_{\text{out}}^l)FLOPs=l=1L(2×Cinl×Coutl×Khl×Kwl×Houtl×Woutl)

物理意义:

  • 计算复杂度的直接度量
  • 决定推理速度和能耗

典型场景:

图像分类(224×224输入):各个模型 FLOPs

  • MobileNetV2: 300M
  • ResNet50: 4.1G
  • ViT-Base: 17.6G

MACs (乘加运算次数)

定义:模型前向传播中乘法与加法运算的总和

计算方式:
MACs=∑l=1L(Cinl×Coutl×Khl×Kwl×Houtl×Woutl)\text{MACs} = \sum_{l=1}^{L} (C_{\text{in}}^l \times C_{\text{out}}^l \times K_h^l \times K_w^l \times H_{\text{out}}^l \times W_{\text{out}}^l)MACs=l=1L(Cinl×Coutl×Khl×Kwl×Houtl×Woutl)

• 与FLOPs关系:
FLOPs≈2×MACs\text{FLOPs} ≈ 2 \times \text{MACs}FLOPs2×MACs

原因:每个乘加运算包含1次乘法+1次加法

硬件意义:
• NPU/GPU等硬件性能的直接度量
• 芯片设计的关键指标

PyTorch测量示例

from ptflops import get_model_complexity_infomacs, params = get_model_complexity_info(model, (3, 352, 352),  # 输入尺寸as_string=True,print_per_layer_stat=False
)
print(f"MACs={macs}, Params={params}")
http://www.dtcms.com/a/275855.html

相关文章:

  • 牛客:HJ19 简单错误记录[华为机考][字符串]
  • 多表查询-4-外连接
  • EMC接地
  • 试用了10款翻译软件后,我只推荐这一款!完全免费还超好用
  • 6.isaac sim4.2 教程-Core API-多机器人,多任务
  • 单细胞入门(1)——介绍
  • C语言中整数编码方式(原码、反码、补码)
  • C++ 模板工厂、支持任意参数代理、模板元编程
  • 如何使用postman做接口测试?
  • dify 用postman调试参数注意
  • MOSFET驱动电路设计时,为什么“慢”开,“快”关?
  • 《Java Web程序设计》实验报告二 学习使用HTML标签、表格、表单
  • 零基础搭建监控系统:Grafana+InfluxDB 保姆级教程,5分钟可视化服务器性能!​
  • elementuiPlus+vue3手脚架后台管理系统,上生产环境之后,如何隐藏vite.config.ts的target地址
  • 游戏开发日记7.12
  • 现代C++打造音乐推荐系统:看看如何从0到1实现
  • 80. 删除有序数组中的重复项 II
  • Web学习笔记3
  • 网络检测:Linux下实时获取WiFi与热点状态
  • 游戏开发团队并非蚂蚁协作(随记):在各种“外部攻击”下保护自己的工具
  • C++中的容斥原理
  • css 判断是ios设备 是Safari浏览器
  • 敏捷开发方法全景解析
  • vue2和vue3的响应式原理
  • 【Datawhale AI 夏令营】 用AI做带货视频评论分析(二)
  • npgsql/dapper/postgresql的时区问题
  • 深入解析 LinkedList
  • Windows去除管理员弹窗确认
  • Claude code在Windows上的配置流程
  • 【6.1.0 漫画数据库技术选型】