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

网友投稿 1208 2022-05-30

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

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

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

乘法运算:

为了得到输出特征图中的某一个像素,需要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)

深度学习 神经网络

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《Java并发编程的艺术》 —3.5 锁的内存语义
下一篇:云合同电子合同/电子签章解决方案之生产制造业
相关文章