普通卷积
输入卷积:Win * Hin * Cin
卷积核:k * k
输出卷积:Wout * Hout * Cout
参数量:(即卷积核的参数)
k * k * Cin * Cout
或者:(k * k * Cin + 1) * Cout (包括偏置bias)
计算量:
k * k * Cin * Wout * Hout * Cout
深度可分离卷积(Depthwise Separable Convolution)
深度可分离卷积可以分为:depthwise conv + pointwise conv
depthwise 卷积(输入channel等于输出channel)
输入卷积:Win * Hin * Cin
卷积核:k * k
输出卷积:Wout * Hout * Cin
参数量:
k * k * Cin
计算量:
k * k * Cin * Wout * Hout
pointwise conv即普通的1x1卷积,参数来按照普通1x1卷积来算
组卷积(Group Convolution)
输入卷积:Win * Hin * Cin
卷积核:k * k
输出卷积:Wout * Hout * Cout
分成g组
参数量:(即卷积核的参数)
k * k * (Cin / g) * (Cout / g) * g = k * k * Cin * Cout * (1 / g)
自然,分组卷积的参数量是标准卷积的 1/g
计算量:
k * k * (Cin/g) * (Wout/g) * Hout * Cout * g= k * k * Cin * Wout * Hout * Cout * (1/g)
参考:
卷积核的参数量和计算量 https://www.cnblogs.com/ywheunji/p/11887906.html
理解分组卷积和深度可分离卷积如何降低参数量 https://zhuanlan.zhihu.com/p/65377955