学习日记28:Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks

摘要:

为了设计快速的神经网络,许多工作一直专注于减少浮点运算(Flops)的数量。然而,由于频繁内存访问,对FLOPs的减少并不一定会导致类似水平的延迟减少 。 提出了一种新的部分卷积算法(PConv) ,可以同时减少冗余计算和内存访问。 在PConv的基础上,进一步提出了FasterNet,这是一种新的神经网络家族,在广泛的设备上获得了比其他网络更高的运行速度,而不会影响各种视觉任务的准确性。

Introduction

设计具有降低计算复杂性的成本效益高的快速神经网络,主要衡量标准是浮点运算(FLOPs)的数量。MobileNets、ShuffleNets和GhostNet等网络利用深度卷积(DWConv)和/或组卷积(GConv)来提取空间特征。然而,在减少FLOPs的过程中,这些算子往往伴随着内存访问的增加。MicroNet进一步分解和稀疏化网络,将其FLOPs推至极低水平。尽管在FLOPs上有所改进,但这种方法导致了低效的碎片化计算。此外,上述网络通常伴随着额外的数据操作,如连接、混洗和池化,这些操作在小型模型中的运行时间往往显著。传统思路只追求降低 FLOPs(减少总计算量),但忽略了 FLOPS(硬件实际运算效率)。

Method

对Resnet的某一特征图不同通道的观察发现,如下图,通道间存在着巨大的冗余,通过利用特征图中的冗余可以进一步优化成本,**仅对输入通道的一部分应用常规卷积以提取空间特征,而其余通道保持不变。为了连续或常规的内存访问,将前或后连续的​通道视为整个特征图的代表进行计算。**在不失一般性的情况下,考虑输入和输出特征图具有相同的通道数。

Pconv的FLOPs和内存访问次数如下图:

为了充分有效地利用来自所有通道的信息,进一步将逐点卷积(PWConv)附加到的PConv。

基于新颖的PConv和现成的PWConv作为主要构建算子,进一步提出了FasterNet,这是一个新的神经网络家族,它在许多视觉任务中运行速度快且高效。旨在保持架构尽可能简单,没有花哨的设计,以使其在硬件上友好。

有四个层次阶段,每个阶段之前都有一个嵌入层(一个步幅为4的常规Conv 4×4)或一个合并层(一个步幅为2的常规Conv 2×2),用于空间下采样和通道数扩展。每个阶段都有一堆FasterNet块。

Experiments

PConv总体上是一个具有高FLOPS和减少FLOPs的有吸引力的选择。它的FLOPs仅为常规Conv的1/16​,并且在GPU、CPU和ARM上分别比DWConv高14倍、6.5倍和22.7倍的FLOPS。常规Conv具有最高的FLOPS,因为它已经经过多年的优化。然而,它的总FLOPs和延迟/吞吐量是过高的。GConv和DWConv尽管显著减少了FLOPs,但FLOPS却急剧下降。此外,它们倾向于增加通道数以补偿性能下降,然而,这增加了它们的延迟。

PConv + PWConv实现了最低的测试损失,这意味着它们更好地近似了常规Conv的特征转换。结果还表明,仅从特征图的一部分捕获空间特征是足够且高效的。PConv显示出在设计快速有效神经网络方面成为新选择的巨大潜力。

为了进一步评估FasterNet的泛化能力,在COCO数据集上进行了目标检测和实例分割实验。使用ImageNet预训练的FasterNet作为骨干,Mask R-CNN作为检测器。简单地遵循PoolFormer并采用AdamW优化器、1×训练计划(12个epoch)、批量大小为16以及其他训练设置,无需进一步的超参数调整。

相关推荐
风象南7 小时前
我把大脑开源给了AI
人工智能·后端
Johny_Zhao9 小时前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
飞哥数智坊9 小时前
我帮你读《一人公司(OPC)发展研究》
人工智能
冬奇Lab12 小时前
OpenClaw 源码精读(3):Agent 执行引擎——AI 如何「思考」并与真实世界交互?
人工智能·aigc
没事勤琢磨14 小时前
如何让 OpenClaw 控制使用浏览器:让 AI 像真人一样操控你的浏览器
人工智能
用户51914958484514 小时前
CrushFTP 认证绕过漏洞利用工具 (CVE-2024-4040)
人工智能·aigc
牛马摆渡人52815 小时前
OpenClaw实战--Day1: 本地化
人工智能
前端小豆15 小时前
玩转 OpenClaw:打造你的私有 AI 助手网关
人工智能
BugShare15 小时前
写一个你自己的Agent Skills
人工智能·程序员
机器之心15 小时前
英伟达护城河被AI攻破,字节清华CUDA Agent,让人人能搓CUDA内核
人工智能·openai