衡量深度学习模型复杂度

FLOPs:注意s小写,是floating point operations的缩写(s表复数),指浮点数操作量,可以理解为计算量。可以用来衡量算法模型的复杂度。
计算模型的FLOPs:
考虑一个简化的模型,具有以下结构:
1、卷积层(conv1d)
输入通道数:3
输出通道数:64
卷积核尺寸:3x3
输出特征图的维度:128x128
卷积层FLOPs计算:
FLOPs_conv = 2 * input_channels* output_channels* kernel_height_conv * kernel_width_conv * output_height* output_width
2、池化层(pool)
池化操作不涉及乘法或加法浮点运算,故此处FLOPs计算为0。但注意,某些情况下,比较操作可能被计入。
3、全连接层(fc1)
输入特征数:262144 (这是一个示例值,实际值取决于池化层之后的特征图尺寸,这里假设是全展开的)
输出特征数:10
全连接层的FLOPs可以简单地通过乘以输入特征数和输出特征数再乘以2(每个连接包含一次乘法和一次加法)来计算。
torchstat包
torchstat是一个用于PyTorch模型的性能分析工具,它可以用来快速得到模型的相关指标,如FLOPs以及参数数量和内存占用。
使用torchstat计算FLOPs
需要指定模型(model)和输入数据的尺寸(input_size)

model = SimpleCNN()
stat(model, (3, 128, 128))
  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值