卷积神经网络模型的中的参数量和计算量是衡量深度学习算法的重要指标,计算量对应的是算法的时间复杂度。
一、参数量
1、卷积层的参数量
p
a
r
a
m
e
t
e
r
=
(
k
w
∗
k
h
∗
C
i
n
+
1
)
∗
C
o
u
t
parameter = (k_w*k_h*C_{in}+1)*C_{out}
parameter=(kw∗kh∗Cin+1)∗Cout
其中表示Cout输出通道数,Cin表示输入通道数,kw表示卷积核宽,kh表示卷积核高。 kw*kh*Cin括号内的表示一个卷积核的权重数量,+1表示bias,括号表示一个卷积核的参数量,Cout表示该层有Cout个卷积核。
2、全连接层的参数量
p
a
r
a
m
e
t
e
r
=
(
N
i
n
+
1
)
∗
N
o
u
t
parameter = (N_{in}+1)*N_{out}
parameter=(Nin+1)∗Nout
其中表示Nout表示输出的权重数量,Nin表示输入的特征向量的权重,+1表示偏置。
二、计算量
1、卷积层的FLOPs
F
L
O
P
s
=
[
(
C
i
n
∗
k
w
∗
k
h
)
+
(
C
i
n
∗
k
w
∗
k
h
−
1
)
+
1
)
∗
C
o
u
t
∗
w
∗
h
FLOPs = [(C_{in}*k_w*k_h)+(C_{in}*k_w*k_h-1)+1)*C_{out}*w*h
FLOPs=[(Cin∗kw∗kh)+(Cin∗kw∗kh−1)+1)∗Cout∗w∗h
FLOPs是英文floating point operations的缩写,表示浮点运算量,中括号内的值表示卷积操作计算出feature map中一个点所需要的运算量(乘法和加法),kw*kh*Cin表示一次卷积操作中的乘法运算量,kw*kh*Cin-1表示一次卷积操作中的加法运算量,+ 1 表示bias,W和H分别表示feature map的长和宽,Coutwh表示feature map的所有元素数。
2、全连接层的FLOPs
F
L
O
P
s
=
(
I
n
+
(
I
n
−
1
)
+
1
)
∗
O
u
t
FLOPs = (In+(In-1)+1)*Out
FLOPs=(In+(In−1)+1)∗Out
其中In表示乘法运算量,In-1表示加法运算量,+1表示偏置。