原论文摘要
目前,神经网络架构设计主要依赖于计算复杂度的间接指标,即浮点运算次数(FLOPs)。然而,直接指标(如速度)还取决于其他因素,如内存访问成本和平台特性。因此,本研究建议在目标平台上评估直接指标,而不仅仅考虑FLOPs。基于一系列受控实验,本研究提出了若干高效网络设计的实用指南。依据这些指南,我们提出了一种新架构,称为ShuffleNet V2。综合消融实验验证了我们的模型在速度和准确性权衡方面处于最先进的水平。
介绍
ShuffleNet V2的设计原则:
1.减少内存访问成本:通过优化数据传输路径,减少内存访问延迟,提高整体运算速度。
2.考虑平台特性:针对不同硬件平台的特性进行优化设计,确保在目标平台上的高效运行。
3.结构简洁高效:采用简洁而高效的模块设计,降低计算复杂度,同时保持或提升模型的预测准确性。
下图,以四种不同计算复杂度水平下的准确性(在ImageNet验证集上的分类),速度和FLOPs的测量结果。(a, c) 为GPU结果,批量大小为8。(b, d) 为ARM结果,批量大小为1。在所有情况下,我们提出的ShuffleNet v2算法在右上角区域表现最佳。
(a) 是基本的ShuffleNet单元;(b) 用于空间下采样(2×)的ShuffleNet单元;© 我们的基本单元;(d) 我们的用于空间下采样(2×)的单元。DWConv代表深度卷积。GConv代表组卷积。
理论详解可以参考链接:论文地址
代码可在这个链接找到:论文地址
本文在YOLOv10中的主干网络替换成ShuffleNetV2,代码已经整理好了,跟着文章复制粘贴,即可直接运行