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

举报
风吹稻花香 发表于 2021/06/04 22:52:55 2021/06/04
【摘要】 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.卷积参数量的计算,若卷积层的输入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)

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/107643067

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。