获取CNN模型的计算力(flops)参数量(parameters)

本文探讨了PyTorch中AlexNet和ShuffleNet两种模型的FLOPs(计算量)及参数量,并强调了Shufflenet虽结构复杂但参数量小的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今日输出: 获取CNN模型的计算力(flops)参数量(parameters)

使用工具: pytorch 的 torchstat 包

from torchstat import stat
import torchvision.models as models

model = models.alexnet()
stat(model,(3,244,244)

输出结果

alexnet:
请添加图片描述
shufflenet

虽然shufflenet的网络stage比较多,但是参数量和计算量还是非常小的

model = models.shufflenet_v2_x0_5()

__all__ = [
    'ShuffleNetV2', 'shufflenet_v2_x0_5', 'shufflenet_v2_x1_0',
    'shufflenet_v2_x1_5', 'shufflenet_v2_x2_0'
]

请添加图片描述

### FAST-RCNN 模型参数量FLOPS计算 FAST-RCNN作为一种目标检测算法,其复杂度主要取决于所使用的骨干网络(backbone)。通常情况下,FAST-RCNN会采用预训练的卷积神经网络作为特征提取器,比如VGG16、ResNet等。 对于参数量而言,这主要包括两部分: - 骨干网络本身的权重参数数量。 - 用于分类和边界框回归的小全连接层或卷积层的参数。 具体来说,在使用VGG16作为基础网络的情况下,整个FAST-RCNN模型大约含有138M个可训练参数[^2]。然而需要注意的是,不同实现可能会有所差异,特别是当选择了不同的骨干网时。 至于FLOPs(每秒浮点运算次数),这是衡量模型推理效率的一个重要指标。它不仅受到网络架构的影响,还与输入图像尺寸密切相关。一般可以通过专门工具如`thop`库来统计给定配置下的理论峰值性能。下面是一个简单的Python脚本例子展示如何获取这些信息: ```python from thop import profile import torch from torchvision.models.detection import fasterrcnn_resnet50_fpn device = 'cuda' if torch.cuda.is_available() else 'cpu' model = fasterrcnn_resnet50_fpn(pretrained=True).to(device) input_tensor = torch.rand(1, 3, 800, 800).to(device) # 假设输入图片大小为800x800像素 flops, params = profile(model, inputs=(input_tensor,), verbose=False) print(f"FLOPs: {flops / 1e9:.2f} GFLOPs") print(f"Parameters: {params / 1e6:.2f} M") ``` 上述代码片段展示了基于PyTorch框架下估算Fast R-CNN (resnet50-fpn variant)FLOPs以及总参数数目的一种方式。请注意实际数值依赖于具体的硬件环境及软件版本等因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值