子网宽度对照表,正确子网号表示方法

首页 > 教育 > 作者:YD1662023-04-20 03:40:45

作者丨VincentLee

来源丨晓飞的算法工程笔记

来源链接:https://mp.weixin.qq.com/s/-LAfyLA3U4C27thFlRgDhw

轻量级网络的核心是在尽量保持精度的前提下,从体积和速度两方面对网络进行轻量化改造,本文对轻量级网络进行简述,主要涉及以下网络:

SqueezeNet系列

SqueezeNet系列是比较早期且经典的轻量级网络,SqueezeNet使用Fire模块进行参数压缩,而SqueezeNext则在此基础上加入分离卷积进行改进。虽然SqueezeNet系列不如MobieNet使用广泛,但其架构思想和实验结论还是可以值得借鉴的。

SqueezeNet

SqueezeNet是早期开始关注轻量化网络的研究之一,使用Fire模块进行参数压缩。

子网宽度对照表,正确子网号表示方法(1)

SqueezeNet的核心模块为Fire模块, 结构如图 1 所示, 输入层先通过squeeze卷积层 卷 积)进行维度压缩,然后通过expand卷积层 卷积和 卷积混合)进行维度扩展。Fire模 块包含 3 个参数, 分别为squeeze层的 卷积核数 , expand层的 卷积核数 和 层的 卷积核数 , 一般

SqueezeNext

SqueezeNext是SqueezeNet实战升级版,直接和MobileNet对比性能。SqueezeNext全部使用标准卷积,分析实际推理速度,优化的手段集中在网络整体结构的优化。

子网宽度对照表,正确子网号表示方法(2)

SqueezeNext的设计沿用残差结构,没有使用当时流行的深度分离卷积,而是直接使用了分离卷积,设计主要基于以下策略:

ShuffleNet系列

ShuffleNet系列是轻量级网络中很重要的一个系列,ShuffleNetV1提出了channel shuffle操作,使得网络可以尽情地使用分组卷积来加速,而ShuffleNetV2则推倒V1的大部分设计,从实际出发,提出channel split操作,在加速网络的同时进行了特征重用,达到了很好的效果。

ShuffleNet V1

ShuffleNet的核心在于使用channel shuffle操作弥补分组间的信息交流,使得网络可以尽情使用pointwise分组卷积,不仅可以减少主要的网络计算量,也可以增加卷积的维度。

子网宽度对照表,正确子网号表示方法(3)

在目前的一些主流网络中,通常使用pointwise卷积进行维度的降低,从而降低网络的复杂度,但由于输入维度较高,pointwise卷积的开销也是十分巨大的。对于小网络而言,昂贵的pointwise卷积会带来明显的性能下降,比如在ResNext unit中,pointwise卷积占据了93.4%的计算量。为此,论文引入了分组卷积,首先探讨了两种ShuffleNet的实现:

图1b的思想可以简单地用channel shuffle操作进行实现,如图1c所示, 假设包含 组的卷积 层输出为 维,首先将输出reshape()为 , 然后进行transpose 0 , 最后再flatten()回维。

ShuffleNet V2

ShuffleNetV1的pointwise分组卷积以及bottleneck结果均会提高MAC,导致不可忽视的计算损耗。为了达到高性能以及高准确率,关键是在不通过稠密卷积以及过多分组的情况下,获得输入输出一样的大维度卷积。ShuffleNet V2从实践出发,以实际的推理速度为指导,总结出了5条轻量级网络的设计要领,并根据要领提出了ShuffleNetV2,很好地兼顾了准确率和速度,其中channel split操作十分亮眼,将输入特征分成两部分,达到了类似DenseNet的特征重用效果。

子网宽度对照表,正确子网号表示方法(4)

首页 12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.