https://www.jianshu.com/p/c2a0ba5bb3d1

参数量

参数量是参与计算参数的个数, 占用内存空间,假设输入通道和输出通道都是 1,核大小为卷积中参数量和计算量 - 图1#alt=)
&,输入 map 大小为

卷积中参数量和计算量 - 图2#alt=)
,输出 map 大小为卷积中参数量和计算量 - 图3#alt=)
,考虑偏置,不补 0 的卷积。

其参数量为:卷积中参数量和计算量 - 图4

若考虑输入通道卷积中参数量和计算量 - 图5
和输出通道卷积中参数量和计算量 - 图6
,则参数量为:卷积中参数量和计算量 - 图7%2B1)*C_%7Bout%7D#alt=)

计算量(乘加次数)

MAC(Multiply Accumulate),需要考虑输出 map 的大小,1 个 MAC 算两次操作

假设输入通道和输出通道都是 1,核大小为 K*K,输入 map 大小为

卷积中参数量和计算量 - 图8#alt=)
,输出 map 大小为卷积中参数量和计算量 - 图9#alt=)
,考虑偏置,不补 0 的卷积。

其计算量为:卷积中参数量和计算量 - 图10

若考虑输入通道卷积中参数量和计算量 - 图11
和输出通道卷积中参数量和计算量 - 图12
,则计算量为:卷积中参数量和计算量 - 图13

FLOPs(floating point operations)

浮点运算量,指计算量,跟乘加次数有点不一样,若考虑偏置

则 FLOPs =卷积中参数量和计算量 - 图14H_%7Bout%7DW%7Bout%7D*C%7Bout%7D#alt=)

不考虑偏置的情况下

则 FLOPs =卷积中参数量和计算量 - 图15H_%7Bout%7DW%7Bout%7D*C%7Bout%7D#alt=)

注意:这里乘和加分开,加的操作因为 n 个数相加所以减 1 了,考虑偏置则补掉了加 1

卷积中参数量和计算量 - 图16

可分离的卷积具体操作是先对输入 map 每单个 channel 进行卷积的操作,然后再进行 1 维卷积实现输出通道的改变。

假设输入通道和输出通道都是 1,核大小为卷积中参数量和计算量 - 图17#alt=)
&,输入 map 大小为

卷积中参数量和计算量 - 图18#alt=)
,输出 map 大小为卷积中参数量和计算量 - 图19#alt=)
,考虑偏置,不补 0 的可分离卷积。

考虑输入通道卷积中参数量和计算量 - 图20
和输出通道卷积中参数量和计算量 - 图21

参数量:

卷积中参数量和计算量 - 图22#alt=)
, 后面加 1 是偏置

MAC 计算量:

卷积中参数量和计算量 - 图23

FLOPs 计算量为:

卷积中参数量和计算量 - 图24H_%7Bout%7DW%7Bout%7D%2B(C%7Bin%7D211)H%7Bout%7D*W%7Bout%7D*C_%7Bout%7D#alt=)

https://www.jianshu.com/p/c2a0ba5bb3d1