美文网首页
Shufflenet V2中的结论

Shufflenet V2中的结论

作者: wzNote | 来源:发表于2019-09-27 18:54 被阅读0次

    1 卷积层的输入输出特征通道数对MAC指标的影响。

    结论:卷积层的输入和输出特征通道数相等时MAC最小,此时模型速度最快。

    2 卷积的group操作对MAC的影响。

    结论:过多的group操作会增大MAC,从而使模型速度变慢

    3 模型设计的分支数量对模型速度的影响

    结论:模型中的分支数量越少,模型速度越快。

    4 element-wise操作对模型速度的影响

    结论:element-wise操作所带来的时间消耗远比在FLOPs上的体现的数值要多,因此要尽可能减少element-wise操作

    在程序中实现channel shuffle

    shuffle是将分组卷积后不同组的channel进行重组,以保证在之后的分组卷积的输入来自不同的组,因此信息可以在不同组之间流转。

    这种shuffle并不是随机的,而是均匀地打乱

    若输入的数据维度是B, C, H, W,一共分G组,每组C/G个channel
    将输入数据reshape成B, C/G, G, H, W的形式
    重新排列维度的顺序为B, G, C/G, H, W
    最后再reshape成B, C, H, W,就完成了shuffle

    以下给出shufflenetv1中shuffle的代码

    def channel_shuffle(x, group):
        batchsize, num_channels, height, width = x.data.size()
        assert num_channels % group == 0
        group_channels = num_channels // group
        x = x.reshape(batchsize, group_channels, group, height, width)
        x = x.permute(0, 2, 1, 3, 4)
        x = x.reshape(batchsize, num_channels, height, width)
        return x
    

    相关文章

      网友评论

          本文标题:Shufflenet V2中的结论

          本文链接:https://www.haomeiwen.com/subject/irfmuctx.html