ShuffleNet
ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型,和MobileNet, SqueezeNet等一样主要应用在移动端,所以模型的设计目标就是利用有限的计算资源来达到最好的模型精度。
这个模型主要是引入了两中操作,是Pointwise Group Convolution和Channel Shuffle,使其在保持不错的准确率的前提下,将参数量降低了下来。
在17年发表ShuffleNet V1之后的那一年,有发表了ShuffleNet V2,它们的特征如下:
ShuffleNet v1 特征
- Group Convolution: ShuffleNet v1 引入了分组卷积(Group Convolution),这是一种在AlexNet中首次提出的概念,用于减少计算复杂度。分组卷积将输入通道分成多个组,每个组独立进行卷积操作,然后再将所有组的结果拼接起来。
- Channel Shuffle: 为了克服分组卷积可能导致的信息分离问题,ShuffleNet提出了通道洗牌(Channel Shuffle)操作。在分组卷积之后,通道洗牌会重新组织通道,确保信息在不同组之间混合,从而提高模型的表达能力。
ShuffleNet v2 特征
- Efficient Design Principles: ShuffleNet v2 遵循了几个高效网络设计原则,比如等通道宽度最小化内存访问成本(Equal Channel Width Minimizes Memory Access Cost)和避免过度分组卷积(Avoid Excessive Group Convolution)。
- Refined Architecture: ShuffleNet v2 对网络架构进行了精炼,包括去除不必要的元素,如通道洗牌,以及改进了分组卷积的使用方式,以提高效率和准确性。
- Linear Bottleneck Blocks: 在ShuffleNet v2中,引入了线性瓶颈(Linear Bottleneck)结构,类似于MobileNet v2的倒置残差结构,但在最后一层使用了1x1卷积来减少通道数,从而减少计算成本。
- Adaptive Width & Resolution Scaling: ShuffleNet v2 提供了网络宽度和输入分辨率的自适应缩放策略,允许用户根据硬件限制灵活调整网络复杂度。
使用mindspore构件一个ShuffleNet v1