整体可以参考这里
以下是我的个人理解的补充,方便日后回顾
normal convolution:普通卷积对于每一个输入channel都提供一套卷积参数,例如卷积核为 K ∗ K K * K K∗K,输出channel为 C o u t C_{out} Cout,则对于每一个输入channel,卷积参数为 K ∗ K ∗ C o u t K * K * C_{out} K∗K∗Cout。因此如果输入channel为 C i n C_{in} Cin,则全部参数为 C i n ∗ K ∗ K ∗ C o u t C_{in}*K*K*C_{out} Cin∗K∗K∗Cout。group convolution:对于分组卷积,他将输入分组为 G G G组,每组共享卷积参数,因此他卷积的全部参数仅为 ( C i n / G ) ∗ K ∗ K ∗ C o u t (C_{in}/G)*K*K*C_{out} (Cin/G)∗K∗K∗Cout。depth-wise separable convolution:第一层卷积:separable convolution,输入channel等于输出channel,相当于深度没有增加,但是每个channel的height和width会有依据kernel_size所改变。第二层卷积:point convolution, C o u t C_{out} Cout可以自定义,而kernel_size固定为1*1,从而增加卷积深度。依照这样的方法,可以得到和normal convolution相同的输出,参数量减少; 相比于group convolution, 卷积核也 *** 作到了输入的每一层chanel。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)