channel shuffle:
1)利用group ,再组间进行深度卷积。
优点:1)极大减小计算量(FLOPS)
由于每个filter不再是和输入的全部feature map做卷积,而是仅仅和一个group的feature map做卷积。
缺点:边界效应产生,即某个输出channel仅仅来自输入channel的一小部分
细节:一般卷积操作中比如输入feature map的数量是N,该卷积层的filter数量是M,那么M个filter中的每一个filter都要和N个feature map的某个区域做卷积,然后相加作为一个卷积的结果。假设你引入group操作,设group为g,那么N个输入feature map就被分成g个group,M个filter就被分成g个group,然后在做卷积操作的时候,第一个group的M/g个filter中的每一个都和第一个group的N/g个输入feature map做卷积得到结果,第二个group同理,直到最后一个group.
2)为了抵消边界效应,提出channel shuffle
本质; 即进行GConv2之前,对其输入feature map做一个分配,使得GConv2的每一个group都能卷积输入的所有group的feature map
def _shuffle(x, groups): def shuffle_layer(x):