点击下方卡片,关注“CVer”公众号
AI/CV重磅干货,第一时间送达
作者:王云鹤 | 已授权转载(源:知乎)编辑:CVer
https://zhuanlan.zhihu.com/p/540547718
GhostNet作为近年来最流行的轻量级神经网络架构,其在ARM和CPU端的应用已经非常广泛。而在GPU和NPU这种并行计算设备上,原版GhostNet并没有体现出优势。最近,华为诺亚的研究者针对GPU等设备的特点,巧妙引入跨层的廉价操作,减少计算量的同时减少的内存数据搬运,基于此设计了GPU版GhostNet。实验表明,G-GhostNet在现有GPU设备上达到了速度和精度的最佳平衡。在华为自研NPU昇腾310上,G-GhostNet的速度比同量级ResNet要快30%以上。该论文已被计算机视觉顶级期刊IJCV收录。
GhostNets on Heterogeneous Devices via Cheap Operations
论文链接:
https://link.springer.com/article/10.1007/s11263-022-01575-y
arXiv:arxiv.org/abs/2201.03297
PyTorch代码链接:
https://github.com/huawei-noah/Efficient-AI-Backbones
MindSpore代码:
https://gitee.com/mindspore/models/tree/master/research/cv/ghostnet_d
基于卷积神经网络的推理模型在以计算机视觉为基础的各个终端任务如图像识别、目标检测、实力分割等场景中都有广泛的应用。传统的基础神经网络往往由于规模较大的参数与计算量,导致各项终端任务无法实时工作。现有的轻量级推理网络(MobileNet, EfficientNet, ShuffleNet)都是针对CPU、ARM等移动设备设计而成,在GPU等基于大吞吐量设计的处理单元上的表现却不尽人意,推理速度甚至比传统的卷积神经网络更慢。随着硬件基础的提升,云服务器、手机等端侧设备也配备了大量的GPU模块,设计出更适合GPU的推理模型具有重大的学术和商业价值。
因此,新版GhostNet重点关注在GPU设备上能快速推理的卷积神经网络,设计出用更少计算量和参数量达到更高推理速度和更高测试精度的模型。我们考虑了现有的由深度可分离卷积和残差组成的卷积模块在GPU设备上的不足,提出一种利用跨层廉价操作产生Ghost特征的基础网络结构。现有的轻量级网络主要依赖深度可分离卷积来组成卷积层,进一步堆叠形成具有特定输出通道数的模块,最后组成整体网络。我们设计的模块首先由传统卷积层堆叠而成,模块中的每一层都利用廉价操作产生Ghost特征并融合作为模块输出,最后的卷积神经网络由几个这样的大模块堆叠而成。
首先回顾一下原GhostNet架构。GhostNet由Ghost模块搭建而成,Ghost模块里,首先采用普通卷积生成少量特征图,而更多特征图则使用廉价操作(如Depthwise)来生成。这样,Ghost模块使用更少计算量更廉价的方式生成了和普通卷积层一样多的特征图。而Depthwise等廉价操作对于流水线型CPU、ARM等移动设备更友好,对于并行计算能力强的GPU则不太友好。
我们考虑了GPU设备的特点,跳出一个卷积层,转而从跨层(跨block)的特征图出发来降低数据搬运。如图所示,以残差卷积神经网络(ResNet-50,作图省略残差连线)为例,相同stage之间,不同层的输出特征具有较高的相似性,不同stage之间,特征的相似性较低。因此我们利用相同stage之间跨层的廉价操作来让网络生成这些与关键特征相似性高的特征。现有的轻量级推理网络(EfficientNet, MobileNet)一般以深度可分离卷积为基础,这些网络相比于基于普通卷积的神经网络(ResNet, Inception)具有更少的计算量,但是在GPU设备上的实测速度却远比普通卷积慢。
图 ResNet中跨层特征图的相似性如图所示,我们提出了两种基于跨层廉价操作的stage结构:
G-Ghost stage:给定模块的输入输出通道数(一般情况下输入通道数和输出通道数相同),第二层开始所有的卷积层的通道数都是输出通道数的1/2,剩下的1/2通道的输出特征由第一层卷积层的输出经廉价操作产生。
带mix操作的G-Ghost stage:在G-Ghost stage的基础上,第二层开始所有的卷积层的通道数都是输出通道数的1/2,剩下1/2通道的输出特征由之前所有卷积层分别经过廉价操作产生。
图 G-Ghost核心思想普通卷积神经网络的一个stage,由n层卷积层{L1, L2, …, Ln}堆叠而成:
由G-Ghost图可得,Yn的特征和Y1的特征图有部分相似之处,因此某些Yn可以通过Y1做简单 的变换得到:
廉价操作C(·)包括但不限于1x1卷积、残差连接等。MixGhostV2特征产生的方法和上述描述类似,会利用多个廉价操作生成多个Ghost特征。
最终的推理网络由基于核心模块设计的stage堆叠而成,具体网络结构如表1所示。Block代表传统的残差模块,output代表输出特征图的大小,#out代表输出特征图的通道数。
表G-GhostNet网络的具体结构G-Ghost结构可用于改造不同神经网络架构,如ResNet、RegNet中。在图像分类数据集ImageNet的结果如下表所示,对比具有同样推理速度的基线网络ResNet,G-Ghost可以在该大型分类数据集上提升1.4%的推理精度。在RegNet上使用G-Ghost结构,取得了最好的GPU速度和精度的平衡。
表 图像分类数据集ImageNet上与基线网络ResNet的对比 表 图像分类数据集ImageNet上与SOTA网络的对比而在轻量神经网络对比中,G-GhostNet同时达到最快的推理速度和最高的推理精度。如下图所示,G-GhostNet在24ms的推理时延下,达到了超过77.5%的ImageNet正确率,远超其他网络如MobileNetV3和EfficientNet。
图 G-GhostNet和其他轻量神经网络对比现有的目标检测器一般由特征提网络和专门的检测网络组成。我们在发明实施例一的基础上,用G-Ghost RegNet结构替换目标检测器的特征提取网络,并在公开的大型目标检测数据集COCO上进行实验。具体结果如表所示,G-Ghost RegNet结构产生的目标检测网络在达到最高mAP的同时还具有最快的推理速度,达到每秒25.9帧。
表 目标检测数据集COCO上与基线特征提取网络的对比新版GhostNet提出的跨层廉价操作,可用于不同网络结构中,进一步优化模型运行所需的内存,提升GPU等设备上的运行速度。至此,GhostNet系列已经打通ARM、CPU、GPU甚至NPU的常用设备,能够在不同硬件需求下达到最佳的速度和精度的平衡。
GhostNet 论文和代码下载
后台回复:GhostNet,即可下载最新论文和代码
目标检测和Transformer交流群成立
扫描下方二维码,或者添加微信:CVer6666,即可添加CVer小助手微信,便可申请加入CVer-目标检测或者Transformer 微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer等。
一定要备注:研究方向+地点+学校/公司+昵称(如目标检测或者Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲扫码或加微信: CVer6666,进交流群
CVer学术交流群(知识星球)来了!想要了解最新最快最好的CV/DL/ML论文速递、优质开源项目、学习教程和实战训练等资料,欢迎扫描下方二维码,加入CVer学术交流群,已汇集数千人!
▲扫码进群
▲点击上方卡片,关注CVer公众号
整理不易,请点赞和在看