• 论文阅读笔记---ShuffleNet V1


    01 ShuffleNet V1要解决什么问题

    为算力有限的嵌入式场景下专门设计一个高效的神经网络架构。

    02 亮点

    使用了两个新的操作:pointwise group convolution和channel shuffle。

    根据这两个操作构建了ShuffleUnit,整个ShuffleNet都是由ShuffleUnit组成。

    所谓的的pointwise group convolution就是分组卷积与1x1卷积的结合!!!

    2.1 Channel Shuffle

    shuffle的步骤如下:

    • 假设一个卷积层上有g组,每组有n个通道,最后输出就有g×n个通道。
    • reshape成(g,n) 。
    • 转置成(n,g)。
    • 展开(flatten),再分成g组,作为下一层的输入。

    2.2 Shuffle Unit

    图(a)是残差卷积模块,标准3×3卷积转换为深度可分离卷积与1×1卷积的组合。中间加上BN和ReLU,构成基本单元。

    图(b)是Shuffle Unit,将图(a)中的第一个1×1卷积替换成1×1组卷积(GConv)和channel shuffle组成的单元。

    图(c)是用于降采样的Shuffle Unit,深度可分离卷积的步长改为2,为了适配主分支的feature map,在shortcut上加上了步长也为2的平均池化(AVG Pool 3×3 )。

    2.3 网络架构

    03 效果如何?

    • 在ImageNet分类和MS COCO目标检测任务上取得了比其他轻量化模型更高的准确率,如MobileNet v1。
    • 在ARM设备上,ShuffleNet的速度比AlexNet快了13倍。

    04 还存在什么问题?

    • 超参数如组卷积的组数以及通道压缩比率等需要根据实际情况决定,不同任务下需要自行调整。
    • 网络实时性并不能单纯以浮点计算量来衡量,还存在memory access cost(MAC)等因素的干扰,并不能仅仅根据计算量就认为ShuffleNet是最快的。
    • 通道的Shuffle是人工设计的,不是模型自己学习的,不符合网络通过负反馈自动学习特征的基本原则,又陷入人工设计特征的老路!
  • 相关阅读:
    基本类型
    匿名对象和匿名方法
    定时任务@SChedule详解
    docker的配置和安装
    数据库的学习
    docker的学习
    nginx的学习
    yyyy-MM-dd HH:mm:ss.SS的大小写的含义
    单例模式的学习
    layer的学习
  • 原文地址:https://www.cnblogs.com/Terrypython/p/11537633.html
Copyright © 2020-2023  润新知