深度学习中卷积的参数量与计算量

普通卷积

输入卷积: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

猜你喜欢

转载自www.cnblogs.com/hejunlin1992/p/12978988.html
今日推荐