Pytorch中计算自己模型的FLOPs(profile(),clever_format())

Pytorch中统计模型的计算量(FLOPs)和参数量(Params) get_model_complexity_info 函数的参数 as_strings=True 表示返回的结果以字符串形式表示,print_per_layer_stat=True 表示打印每个层的统计信息。然后,我们定义了模型的输入尺寸,并使用 get_model_complexity_info 函数来计算模型的乘积累加操作(MACs,可以近似为 FLOPs)和参数量。最后,我们将结果打印出来。在深度学习中,FLOPs 用于衡量模型的总计算量,包括所有的乘法、加法和其他可能的操作(如激活函数的计算)。 阅读详情
AI摘要

FLOPS是衡量硬件每秒浮点运算次数的指标,而FLOPs用于表示模型的计算复杂度。MACs代表乘积累加操作,每个MAC相当于一次FLOPs。文章介绍了如何使用thop库来计算模型如ResNet50的FLOPs,并提供了自定义计算规则的方法,以提高输出结果的可读性。

提到计算量必然涉及FLOPS, FLOPs和MACs,并不是同样的意思,切忌混淆。

FLOPS:Floating Point Operations Per Second,每秒浮点运算次数,是一个衡量硬件计算性能的指标。

FLOPs:Floating Point Operations,浮点运算次数,常用来衡量模型的计算复杂度,即计算量。(大多数论文会在表格中给出模型的FLOPs指标。不过,该指标与实际速度并不完全正相关,我自己测也是这样,所以也有一些论文会给FPS或者1/FPS即单图片推理时间。)

显然,FLOPS和FLOPs不是一回事,FLOPS的积分可以理解为等于FLOPs。

MACs:Multiply–Accumulate Operations,1 MAC = 1次加法+1次乘法操作。

因为,每次运算就等于1次FLOPs,所以,近似地,从数值上看我们有

在这里插入图片描述

安装thop

pip install thop

基础用法

以查看resnet50的FLOPs为例

from torchvision.models import resnet50
from thop import
【PyTorch】模型 FPS 测试 Benchmark(参考 MMDetection 实现) 深度学习中,模型的速度和性能具有同等重要的地位,因为这直接关系到模型是否能在实际生产应用中落地。在计算机视觉领域,FPS(模型每秒能够处理的图像帧数)是一个重要且直观地反映模型处理速度的指标,基本在所有图像处理类任务中都有用到,例如图像超分,图像修复和目标检测等等。本文从 MMDetection 中抽取了 FPS Benchmark,并做了微小的修改,以便快速测试。 阅读详情

相关推荐

Pytorch中FLOPs和Params计算

【代码】Pytorch中FLOPs和Params计算。

flyingluohaipeng的博客 2404

PyTorch thop 与 fvcore 库对比:ResNet-50 模型 FLOPs 计算误差 0.5% 实测

本文深度对比了PyTorch生态中三大主流计算量评估工具thop、fvcore和torchstat在ResNet-50等模型上的FLOPs计算表现,实测结果显示fvcore的计算误差仅为0.5%,是论文复现和模型优化的理想选择。文章详细解析了GFLOPs计算的核心概念、工具差异及工程实践建议,为计算机视觉领域的开发者提供权威参考。

weixin_33716941的博客 443

深度学习模型效率评估:FLOPs与FLOPS核心概念、计算原理与工程实践

在深度学习模型部署与优化中,计算复杂度与硬件性能的量化评估是关键基础。FLOPs(浮点运算次数)作为衡量模型计算复杂度的核心指标,用于评估算法本身的工作量;而FLOPS(每秒浮点运算次数)则代表硬件设备的峰值算力,衡量其执行速度。理解两者的区别与联系,是进行模型优化、硬件选型与性能预估的基石。从技术原理看,FLOPs的计算需明确乘加运算(如FMA)的计数标准,并需结合卷积、全连接等层的具体公式进行逐层估算。其技术价值在于为模型设计提供理论计算量参考,帮助识别计算瓶颈。然而,FLOPs仅是理论指标,实际推理速

weixin_33849215的博客 373

CNN与ViT模型复杂度计算:FLOPs与参数量原理、公式推导与工程实践

在深度学习模型评估与优化中,模型复杂度是衡量其计算效率和存储开销的核心指标。其原理主要围绕计算量(FLOPs)和参数量展开,前者直接关联推理速度与功耗,后者则影响内存占用与过拟合风险。理解这些指标的技术价值在于,它能指导工程师进行精准的模型选型、结构优化和高效的边缘部署。无论是传统的卷积神经网络(CNN)还是基于自注意力的视觉Transformer(ViT),其复杂度来源存在根本差异。例如,CNN的计算量主要由卷积核的滑动乘加操作决定,而ViT的瓶颈则在于其注意力机制中序列长度的平方项。在实际应用场景中,如

weixin_33709219的博客 327

手把手推导CNN与ViT的FLOPs与参数量:从原理到代码实战

在深度学习和模型部署中,FLOPs(浮点运算次数)和参数量是评估模型计算复杂度与存储需求的两个核心指标。FLOPs衡量模型前向传播所需的计算力,而参数量则反映模型的记忆容量与优化潜力。理解其计算原理,不仅能帮助我们在模型设计、论文复现和面试准备中建立量化直觉,更是进行模型轻量化、硬件部署和性能调优的基石。从卷积神经网络(CNN)的标准卷积、深度可分离卷积,到视觉Transformer(ViT)的自注意力机制与前馈网络,其计算开销的推导均遵循清晰的张量维度与运算规则。掌握这些基础,能让我们在面对ResNet、

weixin_30266885的博客 457

Pulpino SoC中挂载AXI从机接口的自定义IP说明

AXI 从机接口挂载 Pulpino SoC 调试Pulpino SoC中挂载AXI从机接口的自定义IP说明PULPion SoC介绍自定义AXI IP挂载IP挂载框图代码修改脚本修改自定义AXI IP调试C语言编写软件调试硬件调试 Pulpino SoC中挂载AXI从机接口的自定义IP说明 本篇文章主要从工程的角度描述了如何将具有AXI从机接口的自定义IP挂载到Pulpino SoC上,其中不涉及到SoC中的任何原理知识。 PULPion SoC介绍 PULPion SoC整体架构如下图所示, PULPi

小陈的芯片学习之路 2212

黑暗中的爆破(船讯网Ais爬虫暨爬虫实战js逆向学习经验分享)

船讯网 爬虫 js逆向 python

returnadsss的博客 1576

简单说说Python中的pip如何换源

【安装包】:pip install 【升级包】:pip install --upgrade 【卸载包】:pip uninstall 【查看已安装的包】:pip list【搜索包】:pip search (注意:pip search功能在pip 10.0.0之后被弃用,建议使用其他方式搜索包,如访问PyPI官网或使用其他搜索引擎)

一捌柒的博客 2668

EMQX 结合MySQL实现精细化ACL权限管理实战

本文详细介绍了如何通过EMQX结合MySQL实现精细化的ACL权限管理,提升物联网设备接入和消息传输的安全性。内容包括环境准备、基础配置、权限规则设计技巧以及高级应用与性能优化方案,帮助开发者快速掌握动态生效、便于管理的权限控制方法。

weixin_28683689的博客 198

Prometheus安装部署说明

1. 安装Prometheus Server   Prometheus基于Golang编写,编译后的软件包,不依赖于任何的第三方依赖。用户只需要下载对应平台的二进制包,解压并且添加基本的配置即可正常启Prometheus Server。 1.1 下载并解压二进制安装包 通过Prometheus的官方网站:https://prometheus.io/download/,下载最新版本的Prometheus安装包 #下载、解压、创建软链接 cd /export/ wget https://githu..

m0_38100619的博客 5014

Hermes Agent 常见报错排查与问题解决

Hermes Agent 常见报错排查指南 摘要 本文全面梳理了 Hermes Agent 使用过程中的10类常见报错,按阶段划分为安装期、运行期认证类、后端基础设施类和长任务执行类四大类,并提供了系统化的排查流程: 安装期问题:包括命令未找到和Python版本不兼容,主要检查PATH环境和Python版本是否符合要求 认证类问题:涉及API Key认证失败和速率限制,需要验证密钥配置和配额状态 基础设施问题:包含Docker报错、MCP连接失败和OAuth令牌过期,需检查相关服务状态 执行类问题:主要是上

简简单单Onlinezuozuo 1348

【学习系列】SAP RAP 4:通过注解来完成一些常规需求

本文介绍了RAP应用中常用注解的实现方式,包括搜索帮助、文本描述绑定、联动搜索、字段控制等功能。通过@Consumption、@UI等注解可以实现搜索帮助定义、多字段联动、必输校验、默认排序和默认值设置。管理字段可通过@Semantics注解自动记录创建/修改信息,长文本使用@UI.multiLineText实现多行显示。这些注解可优化界面交互和数据管理,为后续行为定义功能开发奠定基础。文章结构清晰,针对不同需求提供了具体的实现方案和代码示例。

DeveloperMrMeng的博客 700

YOLOv9改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计

实时检测器架构的轻量级设计GsConv。

Limiiiing的博客 1366

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: 找不到opencv_world470d.dll
下一篇: wsl安装ros
YL_python_C++_java
博客等级 码龄7年 1392粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值