卷积层计算量(FLOPS)和参数量的计算

1.卷积参数量的计算,若卷积层的输入featuremap的维度为Cin×Hin×Win,卷积核的大小为K1×K2, padding=P1×P2, stride=S1×S2,卷积核(filter)的数量为Cout,则输出特征图的大小为Cout×Hout×Wout,其中:

Hout=⌊(H−K1+2P1)/S1⌋+1

Wout=⌊(W−K2+2P2)/S2⌋+1

⌊⋅⌋表示向下取整。

参数量的计算,由于卷积层共享参数的特性,做一次卷积只和输入通道数Cin,卷积核的大小K1和K2有关,而与输入高度Hin和宽度Win无关。因此,当输出通道数为Cout时,卷积核的参数量为:

Cout×Cin×K1×K2
bias的参数为:Cout
因此,总的参数量为:

Cout×Cin×K1×K2+Cout

2.卷积层浮点数操作(FLOPS)计算量,卷积操作本质上是个线性运算,通常可表示为:

y=Wx+b
这里面涉及到了乘法运算和加法运算,下面将进行一一说明。

乘法运算:

为了得到输出特征图中的某一个像素,需要Cin×K1×K2次乘法运算,而特征图总共有Cout×Hout×Wout个像素,则总计需要的乘法运算量为:

Cout×Hout×Wout×(Cin×K1×K2)

加法运算

当前主流的浮点运算次数(floating point operations,FLOPs)的计算,一般只考虑加上bias的一次加法。
bias=True,则加法运算次数为Cout×Hout×Wout×1;
bias=False,则加法运算次数为0。

综上,bias为True时,总的FLOPS为:

Cout×Hout×Wout×(Cin×K1×K2+1)

bias为False时,总的FLOPS为:

Cout×Hout×Wout×(Cin×K1×K2)

  • 9
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法网奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值