EfficientNet 与轻量网络
EfficientNet 是 Google 在 2019 年提出的一系列高效图像分类网络。它的核心贡献是复合缩放(Compound Scaling)——用一种有原则的方法同时缩放网络的深度、宽度和分辨率,在精度和效率之间取得帕累托最优(Pareto Optimal,即无法在不牺牲一个指标的情况下改进另一个指标的理想状态)。前置阅读:卷积神经网络 CNN、ResNet 残差网络详解。
想象你在装修房子,要同时决定三个维度:盖几层楼(深度)、每层多宽(宽度)、房子占地面积多大(分辨率输入)。传统做法是只动一个——要么加层、要么加宽、要么换更大的地。但只改一个维度很快会撞天花板:网络已经很深时再加层收益甚微,已经很宽时再加通道也于事无补。
EfficientNet 的洞察是:三个维度应该按比例协同增长。论文用复合缩放系数 phi(ϕ)来统一控制:
- 深度
- 宽度
- 分辨率
其中 、、 是通过小网格搜索(grid search,即在预设的参数空间内逐一尝试不同组合来寻找最优解)找到的常数,满足 (即 每增加 1,总计算量约翻倍)。 从 0 到 7 就对应 EfficientNet-B0 到 B7。
基线网络 B0 是通过神经架构搜索(NAS,Neural Architecture Search——用强化学习或进化算法自动搜索最优网络结构的技术)得到的,使用了 MBConv(移动端倒瓶颈卷积块)和 SE(Squeeze-and-Excitation,挤压与激励通道注意力)通道注意力,在极小的参数量下就达到了很好的精度。
标准卷积 vs 深度可分离卷积的计算量分析
Section titled “标准卷积 vs 深度可分离卷积的计算量分析”要理解 EfficientNet 为何高效,首先要理解它的基本运算单元——深度可分离卷积(Depthwise Separable Convolution)。这是 MobileNet 系列首创的关键技术,EfficientNet 的 MBConv 块正是建立在它之上。
假设输入特征图尺寸为 (高 × 宽 × 输入通道数),输出通道数为 ,卷积核大小为 。
标准卷积的计算量(即乘加运算次数)为:
深度可分离卷积将标准卷积拆成两步:
- 逐通道卷积(Depthwise):每个输入通道单独用 1 个 卷积核做空间卷积,不跨通道混合。计算量为 。
- 逐点卷积(Pointwise):用 1×1 卷积(即对通道维度做线性组合)将 个通道映射到 个通道。计算量为 。
总计算量为两者之和:
两者的比率为:
以 3×3 卷积()、 为例,比率约为 0.113,即深度可分离卷积仅需标准卷积约 11.3% 的计算量——减少近 9 倍。这就是轻量网络能在手机上实时运行的根本原因。
注意:FLOPS(Floating-point Operations Per Second)在本语境中通常指模型的总浮点运算次数,更准确的叫法是 FLOPs(注意小写 s)。业界通常混用,下文统一称 FLOPS。
复合缩放的数学
Section titled “复合缩放的数学”传统缩放只改变一个维度。设基线网络的深度为 、宽度为 、分辨率为 。复合缩放定义:
约束条件的推导:卷积层的 FLOPS 近似正比于 d × w² × r²(因为宽度 w 决定了通道数,FLOPS 与通道数的平方成正比;深度 d 决定层数;分辨率 r 的平方决定每层特征图的像素数)。我们希望 ϕ 每增加 1,总 FLOPS 约翻倍(×2),即:
要使 ϕ 增加 1 时 FLOPS 乘以 2,需要:
论文通过在 B0 上做小网格搜索确定 α = 1.2、β = 1.1、γ = 1.15(验证:1.2 × 1.1² × 1.15² ≈ 1.2 × 1.21 × 1.3225 ≈ 1.92 ≈ 2)。
为什么是这个约束而不是别的? 约束的作用是将三个自由参数(α、β、γ)缩减为一个(ϕ),同时确保 FLOPS 的增长是可控和可预测的。如果没有约束,缩放就变成了盲目的三参数搜索,计算开销不可控。
MBConv 块:移动端倒瓶颈
Section titled “MBConv 块:移动端倒瓶颈”EfficientNet 的基本构建块是 MBConv(Mobile Inverted Bottleneck Convolution),它借鉴了 MobileNetV2 的倒残差结构:
- 升维:1×1 卷积将通道扩展 t 倍(如 3 倍或 6 倍)
- 深度可分离卷积:3×3 或 5×5 的 depthwise 卷积做空间特征提取(带 stride 控制下采样)
- SE 注意力:对通道做全局池化 → 全连接降维 → 全连接升维 → Sigmoid 加权,让网络自适应地增强重要通道
- 降维:1×1 卷积将通道压回原始数量
- 残差连接:当 stride=1 且输入输出通道相同时,将输入加到输出
与 ResNet 瓶颈”降维-卷积-升维”相反,MBConv 是”升维-卷积-降维”——因为深度可分离卷积在低维时表现不好,先升维可以保留更多特征。
为什么叫”倒”瓶颈? ResNet 的瓶颈块先降维(减少通道)再升维,形状像中间细两头粗(瓶颈)。MBConv 则先升维再降维,形状恰好反过来,所以叫”倒”瓶颈。
SE 注意力的数学公式
Section titled “SE 注意力的数学公式”SE 模块(Squeeze-and-Excitation)是 EfficientNet 精度提升的关键之一。它对通道之间的关系进行建模,让网络学会”哪些通道更重要”。其数学过程如下:
Step 1 — Squeeze(挤压):对 H×W×C 的特征图做全局平均池化(GAP),将每个通道压缩为一个标量:
其中 u_c(i,j) 是第 c 个通道在位置 (i,j) 的特征值。结果 z 是一个 C 维向量。
Step 2 — Excitation(激励):用两个全连接层学习通道权重:
其中 W₁ 将 C 维降到 C/r(r 为缩减比,通常 r=4 或 16,起瓶颈作用以降低参数量),W₂ 再升回 C 维,σ 是 Sigmoid 函数(将输出压缩到 0~1 之间)。
Step 3 — Reweighting(重加权):将学到的权重 s 逐通道乘回原始特征:
最终效果是:重要的通道获得接近 1 的权重(被”放大”),不重要的通道获得接近 0 的权重(被”抑制”)。SE 模块仅增加极少参数(两个小全连接层),却能显著提升精度。
EfficientNet-B0 的架构
Section titled “EfficientNet-B0 的架构”B0 的整体结构由 7 个 Stage 组成,每个 Stage 包含若干 MBConv 块:
| Stage | 操作 | 输出尺寸 | 通道数 | 层数 |
|---|---|---|---|---|
| 1 | 3×3 Conv, stride 2 | 112×112 | 32 | 1 |
| 2 | MBConv1, 3×3 | 112×112 | 16 | 1 |
| 3 | MBConv6, 3×3 | 56×56 | 24 | 2 |
| 4 | MBConv6, 5×5 | 28×28 | 40 | 2 |
| 5 | MBConv6, 3×3 | 14×14 | 80 | 3 |
| 6 | MBConv6, 5×5 | 14×14 | 112 | 3 |
| 7 | MBConv6, 5×5 | 7×7 | 192 | 4 |
| 8 | MBConv6, 3×3 | 7×7 | 320 | 1 |
| 9 | 1×1 Conv + GAP + FC | 1×1 | 1280 | — |
(MBConv1 表示扩展比 t=1,MBConv6 表示 t=6。)
EfficientNet-B0 到 B7
Section titled “EfficientNet-B0 到 B7”基线 B0 经过复合缩放得到 B1 到 B7。差异在于 phi 值(从 0 到 7)同时决定了三组超参数:
| 模型 | phi | 分辨率 | 宽度系数 | 深度系数 | Dropout |
|---|---|---|---|---|---|
| B0 | 0 | 224 | 1.0 | 1.0 | 0.2 |
| B3 | 3 | 300 | 1.4 | 1.5 | 0.3 |
| B7 | 7 | 600 | 2.0 | 3.1 | 0.5 |
更大的模型精度更高但计算量更大。B7 在 ImageNet 上达到 84.4% 的 Top-1 精度,而参数量仅 66M——在当时远超 ResNet-152(60M 参数,73.8%)。
EfficientNetV2 的改进
Section titled “EfficientNetV2 的改进”2021 年的 V2 版本做了三个关键改进:
- 引入 Fused-MBConv:在浅层用普通卷积替代深度可分离卷积(将 1×1 升维和 3×3 卷积融合为标准卷积),在 GPU/TPU 上更高效。深度可分离卷积虽然理论上 FLOPS 少,但在 GPU 上的访存开销(memory access overhead)大,实际速度未必快。
- 渐进式学习(Progressive Learning):训练初期用小分辨率图像 + 强正则化,后期逐渐增大分辨率并减弱正则化,训练速度提升数倍。核心思想是:小分辨率图像已经足够训练早期特征,后期才需要高分辨率细节。
- 更小的最大缩放:不再盲目增大分辨率上限,避免后期的冗余计算。
V2 系列有三个变体:V2-S(Small)、V2-M(Medium)、V2-L(Large),分别对应不同的计算预算。
EfficientNet 在训练中有一些特别需要注意的技巧:
-
大模型需要强正则化:论文发现随着模型增大,过拟合风险也增大。因此 Dropout 率从 B0 的 0.2 线性增长到 B7 的 0.5。此外还使用了 RandAugment(随机数据增强策略)、DropConnect(训练时随机断开部分连接)和 Mixup(将两张图片混合训练)等正则化手段。
-
渐进式学习(V2 专有):EfficientNetV2 训练时,图像分辨率从 128×128 渐进增大到目标分辨率(如 300×300),同时正则化强度从高到低。这意味着训练早期每个 batch 能看到更多图片(因为图片小,显存占用少),总训练时间可缩短 5-11 倍。
-
Batch Size 与学习率:大模型(B5 以上)需要大 Batch Size(如 2048+)配合线性缩放的学习率。训练 B7 需要 512 张 TPU v3,对硬件要求极高。
-
权重衰减(Weight Decay):推荐 1e-5 的 L2 权重衰减,配合 RMSProp 优化器(而非 Adam,EfficientNet 原论文用 RMSProp)。
-
标签平滑(Label Smoothing):使用 0.1 的标签平滑值,防止模型对训练标签过度自信,提升泛化能力。
-
混合精度训练:使用 fp16(半精度浮点数)训练可大幅减少显存占用和加速计算,配合梯度缩放避免数值下溢。
复合缩放 vs 传统单一维度缩放
Section titled “复合缩放 vs 传统单一维度缩放”MBConv 块内部结构
Section titled “MBConv 块内部结构”PyTorch:加载 EfficientNet-B0 并推理
Section titled “PyTorch:加载 EfficientNet-B0 并推理”import torchfrom torchvision import transformsfrom PIL import Imagefrom timm import create_model # pip install timm
# 创建 EfficientNet-B0 并加载 ImageNet 预训练权重model = create_model("efficientnet_b0", pretrained=True)model.eval()
# EfficientNet 用 224 分辨率,归一化参数与 ResNet 相同preprocess = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),])img = preprocess(Image.open("cat.jpg").convert("RGB")).unsqueeze(0)
with torch.no_grad(): probs = torch.softmax(model(img).squeeze(), dim=0)print(f"Top-1 类别: {probs.argmax().item()}, 置信度: {probs.max():.2%}")# 可轻松换为 efficientnet_b3 / b7,只需改一行对比不同 B 系列的参数量与 FLOPS
Section titled “对比不同 B 系列的参数量与 FLOPS”import torchfrom timm import create_model
# 遍历 B0-B7,对比模型规模for name in ["efficientnet_b0", "efficientnet_b3", "efficientnet_b7"]: net = create_model(name) params = sum(p.numel() for p in net.parameters()) / 1e6 # 百万参数 # 用 timm 统计 FLOPs(需要 fvcore 或 thop) print(f"{name}: 参数量 {params:.1f}M")# efficientnet_b0: 参数量 5.3M# efficientnet_b3: 参数量 12.2M# efficientnet_b7: 参数量 66.3M用 thop 精确计算 FLOPs
Section titled “用 thop 精确计算 FLOPs”from timm import create_modelfrom thop import profile # pip install thopimport torch
model = create_model("efficientnet_b0")model.eval()dummy = torch.randn(1, 3, 224, 224)
flops, params = profile(model, inputs=(dummy,))print(f"FLOPs: {flops / 1e6:.1f}M ({flops / 1e9:.2f} GFLOPs)")print(f"Params: {params / 1e6:.1f}M")# FLOPs: ~412.0M (0.41 GFLOPs)# Params: 5.3M导出 ONNX 并用 ONNX Runtime 推理
Section titled “导出 ONNX 并用 ONNX Runtime 推理”import torchfrom timm import create_model
model = create_model("efficientnet_b0", pretrained=True)model.eval()dummy = torch.randn(1, 3, 224, 224)
# 导出 ONNX(可跨平台部署:CPU/GPU/移动端/浏览器)torch.onnx.export( model, dummy, "efficientnet_b0.onnx", input_names=["input"], output_names=["logits"], dynamic_axes={"input": {0: "batch"}, "logits": {0: "batch"}}, opset_version=17,)print("ONNX 导出完成,可用 ONNX Runtime 加载推理")2025-2026 前沿进展
Section titled “2025-2026 前沿进展”EfficientNet 本身已不再是活跃的研究前沿,但它奠定的**“精度-效率帕累托前沿”**思想深刻影响了后续所有轻量网络设计。以下是该领域的最新发展:
1. 重参数化移动网络(RepViT, FastViT, MobileOne)
Section titled “1. 重参数化移动网络(RepViT, FastViT, MobileOne)”2023-2024 年最重要的趋势是训练-推理解耦:训练时使用多分支结构(类似 ResNet 残差)提升精度,推理时通过数学等价变换将多分支合并为单路卷积,实现零延迟开销。
- MobileOne (CVPR 2023):苹果提出,推理时将训练阶段的多分支重参数化为单个卷积,在 iPhone 上达到 <1ms 的推理延迟。核心思想是将 BatchNorm + 多个 K×K 分支在推理时通过线性变换折叠为单个 K×K 卷积。
- FastViT (ICCV 2023):苹果提出,引入 RepMixer(可重参数化的 Token Mixer),训练时用多分支结构混合空间特征,推理时折叠为高效操作。
- RepViT (CVPR 2024):将 Vision Transformer 的高效设计引入 CNN 架构,通过 SE 注意力和结构重参数化,在移动端超越 MobileViT 和 EfficientFormer。
结构重参数化(Structural Reparameterization):训练时用复杂结构提升表达力,推理时通过数学等价变换将复杂结构转换为简单运算。由 RepVGG(CVPR 2021)首创,现已广泛用于移动端网络。
2. CNN-Transformer 混合架构
Section titled “2. CNN-Transformer 混合架构”纯 Transformer 在移动端不如 CNN 高效(Self-Attention 的 O(N²) 复杂度在大分辨率时开销巨大),但 Transformer 的全局建模能力优于 CNN。最新工作致力于在两者间找到平衡:
- EfficientFormerV2 (NeurIPS 2022 → 2023 持续优化):通过 NAS 搜索 CNN 和 Transformer 的最佳混合比例,在移动端达到与 MobileViT 相当的精度但更快。
- MobileViTv2 (ICLR 2023):苹果提出可分离自注意力(Separated Self-Attention),将 O(N²) 复杂度降为 O(N),在移动设备上实现高效的 ViT 推理。
3. 边缘 AI 部署新方案(2024-2025)
Section titled “3. 边缘 AI 部署新方案(2024-2025)”随着边缘设备算力提升和专用 NPU(Neural Processing Unit,神经网络处理器)普及,轻量网络部署生态发生了显著变化:
- 设备端大模型:2024-2025 年的趋势是将多模态大模型(MLLM)部署到移动设备。高通 Snapdragon 8 Gen 3/4、苹果 A17/A18 Pro 的 NPU 算力已达 30-70 TOPS(每秒万亿次运算),使得端侧 3B-7B 参数模型成为可能。EfficientNet 类轻量 CNN 在此场景下更多用作视觉编码器(visual encoder),为多模态模型提取图像特征。
- 4-bit 量化部署:2024 年的 QServe、SmoothQuant 等量化方案支持将视觉模型压缩到 4-bit,在精度损失 <1% 的前提下将推理速度提升 2-3 倍。
- Core ML / ML Kit / LiteRT:
- Apple Core ML(2024 更新)支持将 EfficientNet 导入后在 Apple Neural Engine(ANE)上加速推理,延迟 <5ms。
- Google 将 TensorFlow Lite 更名为 LiteRT(Lite Runtime, 2024),统一了移动端部署流程。
- MediaPipe Tasks(Google,2023-2024)提供开箱即用的图像分类 API,底层即基于 EfficientNet-Lite。
- WebGPU + ONNX Runtime Web:2024 年浏览器普及 WebGPU 支持,EfficientNet 可在浏览器中通过 GPU 加速推理,延迟降至 <50ms,无需服务端。
4. AutoML 与自适应架构搜索
Section titled “4. AutoML 与自适应架构搜索”NAS(神经架构搜索)在 2024-2025 年更加成熟,出现了针对特定硬件的自适应搜索:
- 硬件感知 NAS:不再只优化 ImageNet 精度,而是针对目标硬件(如某款手机 NPU、某款边缘芯片)联合优化精度和延迟。代表工作如 Once-for-All(OFA)网络,一次训练后在多种设备上自适应部署。
- 子网络提取(Sub-network Extraction):训练一个”超级网络”(supernet),从中提取适合不同硬件约束的子网络,避免为每种设备重新训练。
5. EfficientNet 的持续影响力
Section titled “5. EfficientNet 的持续影响力”尽管新模型不断涌现,EfficientNet 在 2025 年依然是:
- 教学的黄金标准:其复合缩放思想被编入几乎所有深度学习教材和课程。
- 基线对比模型:大量论文仍以 EfficientNet-B0/B3 作为轻量基线(baseline,用于对比的参考模型)。
- 迁移学习的特征提取器:在医学影像、工业检测等领域,EfficientNet 预训练模型仍是微调的首选之一。
- timm 库是首选:PyTorch 官方 torchvision 只提供 EfficientNet,而 timm 库提供完整的 B0-B7、V2-S/M/L 以及大量变体,API 统一,预训练权重齐全。
- 输入分辨率要对齐:B0 用 224、B3 用 300、B7 用 600。推理时若分辨率不匹配,精度会明显下降。
- 移动端部署用 B0/B1:参数 5-8M,在手机上推理仅几十毫秒。配合 TFLite(现 LiteRT)或 ONNX Runtime 进一步压缩。详见模型压缩。
- GPU 训练用 V2-S/M:EfficientNetV2 在 GPU 上训练比 V1 快数倍(Fused-MBConv 的功劳),且精度相当或更好。
- Dropout 与复合缩放联动:论文发现大模型需要更强的正则化,所以 Dropout 率从 B0 的 0.2 增加到 B7 的 0.5——缩放模型时别忘了同步缩放正则化。
- 2025 年的部署建议:如果是新项目,优先考虑 RepViT / MobileOne 等重参数化模型(推理更快),EfficientNet 作为成熟的备选方案。但对于需要丰富预训练权重和迁移学习生态的场景,EfficientNet 仍是不二之选。
- 移动端图像分类:B0 在手机上实时分类,广泛用于拍照识别、植物识别、商品搜索等应用。
- 特征提取器 / backbone:EfficientNet 作为下游检测和分割任务的编码器,在精度-效率权衡上优于 ResNet。
- 网页端实时推理:小模型可加载到浏览器中,用 ONNX Runtime Web 或 TensorFlow.js 做客户端推理(2024 年后可用 WebGPU 加速)。
- 嵌入式设备:树莓派、Jetson Nano 等边缘设备上的实时视觉任务首选 EfficientNet-Lite(去掉了 SE 模块以适配量化)。
- Google Photos / Google Lens:Google 内部大量产品使用 EfficientNet 家族做图像理解。
- 多模态模型的视觉编码器:2024-2025 年,EfficientNet 类轻量 CNN 常被用作设备端多模态大模型的视觉前端,提取图像特征后送入语言模型。
典型类库与工具
Section titled “典型类库与工具”| 类库 | 语言 | 说明 |
|---|---|---|
| timm | Python | PyTorch 图像模型库,提供 EfficientNet B0-B7 及 V2 全系列预训练权重 |
| torchvision.models | Python | PyTorch 官方视觉库,提供 EfficientNet-B0 到 B7 |
| tensorflow / keras-applications | Python | TensorFlow 官方实现,Google 出品因此支持最完整 |
| efficientnet-pytorch | Python | Luke Melas 的第三方 PyTorch 实现,API 简洁 |
| LiteRT (原 TensorFlow Lite) | Python / C++ | Google 移动端推理框架(2024 更名),提供 EfficientNet-Lite 的量化部署方案 |
| ONNX Runtime | Python / C++ / JS | 跨平台推理引擎,可将 EfficientNet 导出为 ONNX 后高效推理,支持 WebGPU |
| Core ML | Python / Swift | Apple 平台推理框架,支持在 Apple Neural Engine 上加速 |
| MediaPipe Tasks | Python / C++ / JS | Google 开箱即用的视觉 API,底层基于 EfficientNet-Lite |
| 术语 | 英文 | 解释 |
|---|---|---|
| 复合缩放 | Compound Scaling | 同时按比例缩放深度、宽度、分辨率三个维度的策略 |
| 缩放系数 | Compound Coefficient (phi) | 统一控制三个维度增长幅度的单一超参数 |
| MBConv | Mobile Inverted Bottleneck Conv | 升维-深度卷积-降维的倒瓶颈结构,EfficientNet 的基本块 |
| 深度可分离卷积 | Depthwise Separable Convolution | 将标准卷积拆为逐通道卷积 + 1×1 逐点卷积,可减少约 9 倍计算量 |
| 逐通道卷积 | Depthwise Convolution | 每个输入通道单独用一个卷积核做空间卷积,不跨通道混合信息 |
| 逐点卷积 | Pointwise Convolution | 1×1 卷积,对通道维度做线性组合,负责跨通道信息融合 |
| SE 注意力 | Squeeze-and-Excitation | 通过全局池化和全连接层对通道特征做自适应加权 |
| 全局平均池化 | Global Average Pooling (GAP) | 将每个通道的 H×W 特征图取平均,压缩为一个标量 |
| Fused-MBConv | Fused-MBConv | V2 中将升维卷积和深度卷积融合为普通卷积的结构,GPU 上更高效 |
| FLOPs / FLOPS | Floating-point Operations | 模型的总浮点运算次数,衡量计算复杂度的常用指标 |
| 帕累托最优 | Pareto Optimal | 无法在不牺牲一个指标的情况下改进另一个指标的状态 |
| 神经架构搜索 | NAS (Neural Architecture Search) | 用算法自动搜索最优网络结构的技术 |
| 结构重参数化 | Structural Reparameterization | 训练时用复杂多分支结构,推理时等价转换为简单单路结构 |
| 渐进式学习 | Progressive Learning | V2 中训练前期用小分辨率大正则化、后期增大分辨率减正则化的策略 |
| 倒残差结构 | Inverted Residual | 先升维后降维的瓶颈结构,与 ResNet 的”降维-升维”相反 |
| 标签平滑 | Label Smoothing | 将 one-hot 标签软化(如 0.9/0.1),防止模型过度自信 |
| 混合精度训练 | Mixed Precision Training | 用 fp16 半精度训练以减少显存和加速,配合梯度缩放保证数值稳定 |
| 缩减比 | Reduction Ratio | SE 模块中全连接层降维的比例(通常 r=4 或 16),控制参数量和瓶颈程度 |
| NPU | Neural Processing Unit | 专用于神经网络推理的芯片单元,手机 SoC 中的 AI 加速器 |
| TOPS | Trillion Operations Per Second | 每秒万亿次运算,衡量 NPU/GPU 算力的单位 |
- Tan & Le, 「EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks」(ICML 2019):EfficientNet 原始论文,提出复合缩放方法,B7 在 ImageNet 上达到 84.4% Top-1 精度,参数量比 GPipe 少 8.4 倍。
- Tan & Le, 「EfficientNetV2: Smaller Models and Faster Training」(ICML 2021):V2 论文,引入 Fused-MBConv 和渐进式学习,训练速度比 V1 快 5-11 倍。
- Howard et al., 「Searching for MobileNetV3」(ICCV 2019):MobileNetV3 论文,EfficientNet SE 模块的灵感来源之一。详见MobileNet 与移动端推理。
- Sandler et al., 「MobileNetV2: Inverted Residuals and Linear Bottlenecks」(CVPR 2018):MBConv 倒瓶颈结构的原始来源,理解 EfficientNet 基础块的必读。
- Tay et al., 「Revisiting ResNets: Improved Training and Scaling Strategies」(NeurIPS 2021):分析 ResNet 的现代缩放策略,提供了对比 EfficientNet 的另一个视角。
- Abdullokh et al., 「MobileOne: An Improved One Millisecond Mobile Backbone」(CVPR 2023):苹果的重参数化移动网络,推理时多分支折叠为单路,iPhone 上 <1ms 延迟。
- Vasu et al., 「FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization」(ICCV 2023):苹果的 RepMixer 技术,CNN-Transformer 混合 + 重参数化。
- Wang et al., 「RepViT: Revisiting Mobile Network Design From Transformer Perspective」(CVPR 2024):将 ViT 高效设计引入 CNN,移动端新 SOTA。
- Mehta & Rastegari, 「MobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer」(ICLR 2022) 和 MobileViTv2 (ICLR 2023):苹果的 CNN-Transformer 混合移动网络系列。
- Li et al., 「EfficientFormer: Transformers for Mobile Graphics Processors」(NeurIPS 2022) 和 EfficientFormerV2:面向移动 GPU 的高效 Transformer 架构。