FLOPs:是floating point operations的缩写,表示浮点运算数,理解为计算量。用来衡量模型的复杂度。
目录
以下是自己整理推理的几个常见层的FLOPs计算:
1 卷积:
解读:
三维卷积的形式,对输入通道为Cin的输入,用Cout大小为Cin*Kh*Kw的卷积核卷积。最后的输出大小为Cout*Mh*Mw
参数量:
Cout*Cin*Kh*Kw
参考图:
图1:卷积
计算量:
- 卷积乘:
(Kw*Kh)*(Mh*Mw)*(Cin*Cout)
- 卷积加:
Kw*Kh*Cin-1*Mh*Mw*Cout
Ps:n个数相加,相加次数是n-1。
- Bias加:
Mh*Mw*Cout
- 总:
No Bias:(2*Kw*Kh*Cin-1)*Mh*Mw*Cout
bias: 2*Kw*Kh*Cin*Mh*Mw*Cout
2 全连接
- 乘:
Cin*Cout
- 加:
(Cin-1)*Cout
- 总:
(2*Cin-1)*Cout
3 Dw-pw卷积
解读:
先depth-wise操作,对通道进行二维卷积。卷积核大小为1*Cin*Kh*Kw。然后进行point-wise操作,对卷积之后的特征图进行加权求和,此时的卷积核大小为Cout*Cin*1*1。
参数量:
Cin*Kh*Kw+Cout*Cin*1*1
示意图:
图2:Depth-wise
图3:Point-wise
- 乘
Cin*(Kw*Kh)*(Mh*Mw)
- 加
(Cin-1)*Mh*Mw*Cout
- 总
Mh*Mw*Cin*(Kw*Kh+(Cin-1)*Cout)