美文网首页深度学习-推荐系统-CV-NLP大数据,机器学习,人工智能
论文阅读:轻量级网络之shuffleNetV2—— Shuffl

论文阅读:轻量级网络之shuffleNetV2—— Shuffl

作者: 涂山容容 | 来源:发表于2019-07-25 22:42 被阅读3次

    文章是去年的,但是感觉思路很清晰,被说服了,觉得超牛逼。之前没有好好看,真的是打脸max。还是要好好看论文啊,不要就听名字。

    这篇文章主要是对v1的改进。

    思考向,flops是衡量一个model速度的唯一考量么? 当然不是啦,还有计算平台以及内存访问代价(memory access cost, MAC)等等等。所以呢,就有了v2,并且提出了一些设计模型的通用准则。

    现有的度量计算复杂度的指标是flops,也就是multiply_adds的数量,其实是一个间接的指标,可以近似的去估计实际速度但不是直接指标。比如说,mv2和nasnet_a的flops是同一个量级的,但是mv2的速度却更快。所以说,不能将flops作为唯一模型设计的度量指标,这样往往会导致次优解。

    速度和flops之前的差异可以总结为如下两个原因。1.flops并没有考虑到一些对模型速度影响很大的因素。比如内存访问开销,在有牛逼GPU的时候很可能成为瓶颈,还有模型的并行程度,2.和平台的关系 ,不能理所当然的认为33是11的九倍,因为cudnn有优化。

    因此,在设计一个轻量级网络的时候,不能只看理论计算量,要看实际速度,并且要根据特定的计算平台来设计。

    不同平台上,耗时操作占比是不一样的,所以一定要考虑平台。


    下面插入的是张祥雨博士讲座的PPT,思路真的是超级清晰,就是图不清晰,毕竟是视频截出来的。


    影响模型执行速度的因素:

    1.理论计算量最重要 也就是控制flops
    2.计算访存比 访存比是线性增长 要专门考虑访存比
    3.模型的并行度 碎片化多了之后各个操作会有依赖,会有很多内存读写操作
    4.设备特性 比如ARM


    高性能网络设计的指导准则

    1.输入输出通道数接近 访存比最大
    MAC的计算
    其实特征占用的空间 以11卷积为例,输入输出的特征图大小为w,h 则占用的内存为 wh(c1+c2)+c1c211 flops B = hwc1c21*1,所以MAC与B可以表示为如下关系,怎么推的我就不清楚了

    2.分组卷积要慎用 实现起来稍微困难,而且访存比很尴尬,因为不符合第一条的原则,输入输出通道在算的时候实际是有一个G的倍数关系的。


    3.减少网络碎片


    4.逐元素运算的开销不可忽视 虽然是搬运的操作
    提出v2 v2就符合以上原则
    还有特征重用



    检测好,但是分割不行,主要是upsample的策略。

    相关文章

      网友评论

        本文标题:论文阅读:轻量级网络之shuffleNetV2—— Shuffl

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