如果卷积核的尺寸是 K × K K\times K K×K,有 C C C个特征图作为输入,每个输出的特征图大小为 H × W H\times W H×W,输出为 M M M个特征图。
计算量分析
在上述情况下,卷积神经网络一次前向传播需要的乘法运算次数为:
H × W × M × C × K × K H\times W\times M\times C\times K\times K H×W×M×C×K×K
同时,所要进行的加法计算次数分为考虑偏置和不考虑偏置:
(1)考虑偏置的情况:
为了得到输出的特征图的一个未知的像素,我们需要进行
(
C
×
K
×
K
−
1
)
+
(
C
−
1
)
+
1
=
C
×
K
×
K
(C\times K\times K - 1) + (C - 1) + 1 = C \times K \times K
(C×K×K−1)+(C−1)+1=C×K×K
次加法操作,其中
K
×
K
K\times K
K×K大小的卷积操作需要
K
×
K
−
1
K\times K - 1
K×K−1次加法,由于有C个通道,所以需要将结果乘以C,每个通道间的数要相加,所以需要C - 1次加法,最后再加上偏置的1次加法。
所以总的加法计算量如下:
H × W × M × C × K × K H\times W\times M\times C\times K\times K H×W×M×C×K×K
所以总的卷积运算计算量(乘法+加法):
2 × H × W × M × C × K × K 2 \times H\times W\times M\times C\times K\times K 2×H×W×M×C×K×K
(2)不考虑偏置的情况:
总的卷积计算量:
H × W × M × ( 2 × C × K × K − 1 ) H\times W\times M\times (2\times C\times K\times K - 1) H×W×M×(2×C×K×K−1)
参数量分析
卷积核参数量:
M × C × K × K M\times C\times K\times K M×C×K×K
偏置参数量:
M M M
总体参数量:
M × C × K × K + M M\times C\times K\times K + M M×C×K×K+M