想象你生活在一片老城区,这里的房子都是二层砖瓦房(传统CNN),窗户小小的,视野有限,但冬暖夏凉、结构结实。马路对面,一座座玻璃幕墙的摩天公寓拔地而起(视觉Transformer),它们拥有全景落地窗(自注意力),每个房间都能看到城市全貌。所有人都在说:砖瓦房过时了,未来属于玻璃楼。 ConvNeXt却给出了第三种答案:不拆砖墙,只改设计——借鉴玻璃公寓的户型、空调和装修理念,把老房子改造成兼具现代舒适度和砖石稳固性的新住宅。这篇“城市更新指南”将带你理解ConvNeXt如何零注意力追上Transformer、纯卷积为何依然高效,以及这套设计哲学对深度学习的启示。

岗位关联

理解ConvNeXt“借设计不借机制”的思路,你将掌握如何用纯卷积打造高效视觉骨干网络,在实战中做出兼顾精度与部署效率的模型选型。

目录
  1. 可视化演示
  2. 时代背景:砖瓦房与玻璃幕墙之争
  3. 整体设计:改造施工蓝图
  4. 模块改造:户型翻新三件套
  5. 规范与激活:中央空调与感应门
  6. 训练秘方:新装修队的软装升级
  7. 性能对比:竣工验收单
  8. 启示影响:城市更新启示录
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示ConvNeXt三大核心:ResNet与ConvNeXt模块架构逐层对比、四大现代化设计改进(LayerNorm/GELU/7×7深度卷积/倒置瓶颈)的精度提升曲线、多模型精度-吞吐量散点基准对比与Pareto前沿,动态展示Top-1准确率、参数量、FLOPs和吞吐量。

本节配有交互动效(进入视口后自动加载,约 3KB)。

架构对比 架构对比 现代设计 性能基准 ConvNeXt纯卷积借鉴Transformer设计

时代背景:砖瓦房与玻璃幕墙之争

2020年,计算机视觉界爆发了一场“城市规划之争”。几十年来,CNN一直是老城区的砖瓦房——靠3×3的小窗户一层层向外望,牢固但视野有限。忽然,隔壁新区盖起了玻璃幕墙的摩天大楼——视觉Transformer(ViT),它用“全景落地窗”(自注意力)让每个像素都能一眼望见整张图。ViT在ImageNet上以88.55%的Top-1准确率登顶,CNN阵营第一次感到“被时代抛弃”。

不过,砖瓦房也有玻璃楼羡慕的优点:施工快捷、造价低廉、不需要大量特种钢材(即更少的算力和数据)。Google团队发现ViT需要1.4亿张图像(JFT-300M)预训练才能全面碾压CNN,在ImageNet-1K这类中小数据集上反而容易“水土不服”。后来的Swin Transformer用窗口注意力缓解了部分问题,但本质仍是“玻璃结构”。

ConvNeXt的提出者向整个行业发问:能不能在不引入注意力的前提下,把Transformer的先进设计理念移植到纯卷积网络上?他们以ResNet-50为“老房子样板间”,逐一借鉴Swin Transformer的设计——宏观阶段比例、patchify式stem、深度卷积、倒置瓶颈、LayerNorm和GELU——最终得到一种全新纯卷积架构。它在ImageNet-1K上达到87.8%的Top-1准确率,与Swin Transformer(87.3%)旗鼓相当,却没有使用任何注意力机制。

这场争论的结局不是玻璃楼取代砖瓦房。ConvNeXt用成绩说明:老城区的承重墙(卷积)依然可靠,欠缺的只是现代化的空间设计。保留砖石结构、借鉴现代理念,也能盖出宜居程度不输新公寓的好房子。

N=HP×WPN = \frac{H}{P} \times \frac{W}{P}
这个式子描述ViT如何把图片“切块”成token序列:N是生成的图像块(token)总数,每个块就像摩天大楼的一个“房间”;P是切块边长,H和W是图片的高和宽。
  1. H与W表示输入图像的高度和宽度(单位像素),比如224×224的图片,H=224,W=224。切块前先确定“土地面积”。
    H=224,W=224H = 224,\quad W = 224
  2. P每个方形图像块(patch)的边长,ViT常用P=16,ConvNeXt的stem也借鉴了这种“切块”思想(4×4卷积)。P越大,每个“房间”看到的细节越粗糙。
    P=16P = 16
  3. N切分后的图像块数量,即Transformer的序列长度。它相当于大楼里“全景落地窗”的数量,决定注意力需要安排多少扇窗户互相观望。
    N=22416×22416=196N = \frac{224}{16} \times \frac{224}{16} = 196

整体设计:改造施工蓝图

ConvNeXt的改造从一张“施工蓝图”开始。城市规划师拿到Swin Transformer的设计手册,先把老小区(ResNet-50)的空间分配调整到与之一致:四个片区的楼栋数从3:4:6:3改为3:3:9:3。这意味着计算资源向后半段倾斜——就像把卧室、书房等“深度思考”的房间扩大,而把入口附近的房间压缩。

其次是“小区大门”(stem)。传统ResNet用7×7、stride=2的大卷积加池化慢慢进入;ConvNeXt改成4×4、stride=4的卷积,一步把图片切成16×16的patch网格,模仿ViT的patchify。片区之间的“楼梯”(下采样)也统一换成2×2、stride=2的卷积,与Transformer的层级结构对齐。

实验证明,这些宏观改动虽然简单,却让CNN的行为模式更接近“token计算”:每个阶段内空间分辨率保持不变,信息在通道维度流动;只有跨阶段时才用卷积压缩空间。这相当于把砖瓦房的楼层动线完全梳理了一遍。

蓝图改完之后,老城区的“骨架”还是红砖墙,但空间分配、入口和楼梯都换成了现代标准。接下来要做的是逐个房间的精装修。

Hout=⌊Hin−k+2ps⌋+1H_{out} = \left\lfloor \frac{H_{in} - k + 2p}{s} \right\rfloor + 1
这是卷积输出尺寸的计算公式,用来算“改造后每层楼还有多少个房间”。H_in是输入边长,k是卷积核大小,p是填充,s是步长,H_out是输出边长。
  1. H_in与H_out输入和输出特征图的边长。stem用4×4、s=4、p=0时,224像素的图变成56×56。
    56=⌊224−44⌋+156 = \left\lfloor \frac{224 - 4}{4} \right\rfloor + 1
  2. k与pk是卷积核边长,p是四周填充的像素数。填充相当于在楼外偷偷加一圈“阳台”,防止边缘房间信息丢失。
    k=4,p=0k = 4,\quad p = 0
  3. s步长,卷积核每次滑动的距离。s=4时,相当于一步跨四层,输出尺寸骤减。
    s=4s = 4

模块改造:户型翻新三件套

户型翻新是改造中最直观的一环。老式小区每户只有3×3的小窗(3×3卷积),视野窄;ConvNeXt把窗户换成7×7的大落地窗(7×7深度卷积)。但这扇大窗不是“穿墙打洞”破坏承重——它只在每户自己的那面墙上开,邻居完全不受影响。这就是深度卷积:每个输入通道独立配一个卷积核,通道之间不互相渗漏。

户型结构上,ConvNeXt把“小客厅大卧室”倒了过来。传统瓶颈(Bottleneck)是D→D/4→D,先把房间压小再放大;ConvNeXt的倒置瓶颈是D→4D→D,先把房间扩成四倍再压回原样,与Transformer中MLP先升维再降维如出一辙。扩大的中间层给了网络更多“翻字典、找组合”的空间。

深度卷积的计算代价比标准卷积低得多:7×7深度卷积的参数量是49×C,而7×7标准卷积是49×C²,当C=96时相差近100倍。这也让7×7大核全面取代3×3成为可能。三个翻新动作配合,让老街区每户都能看全景(大感受野)、有更大的思考空间(升维),又不打扰邻居(通道独立)。

yc=xc∗wc,c=1,2,…,C\mathbf{y}_c = \mathbf{x}_c \ast \mathbf{w}_c,\quad c = 1, 2, \dots, C
深度卷积公式:对第c个通道,用通道专属卷积核w_c做卷积,得到输出y_c。通道之间完全独立,就像每户人家各看各的窗。
  1. 下标c表示第c个通道,C是总通道数。在砖瓦房比喻里,每个通道是一户人家,C是整栋楼的住户数。
    c=1,2,…,Cc = 1, 2, \dots, C
  2. x_c与y_cx_c是第c通道的输入特征图,y_c是输出。深度卷积不把不同通道混在一起算,因此每户只看自己的窗景。
    xc∈RH×W\mathbf{x}_c \in \mathbb{R}^{H \times W}
  3. w_c第c通道专属卷积核,大小为7×7。每家窗户的“玻璃花纹”(卷积核参数)可以不同。
    wc∈R7×7\mathbf{w}_c \in \mathbb{R}^{7 \times 7}
  4. \ast卷积运算符号。整条式子说:每家每户独立按自己的窗户尺寸观察外面,不干扰邻居。
    yc=xc∗wc\mathbf{y}_c = \mathbf{x}_c \ast \mathbf{w}_c

规范与激活:中央空调与感应门

老房子的舒适度还取决于基础设施。传统CNN每个房间装独立空调(BatchNorm),靠“同层住了多少户”(batch内所有样本)的统计量来调节温度。可一旦batch size变小(楼层住户少),空调就乱吹。ConvNeXt果断拆掉所有独立空调,换成整栋楼统一恒温的中央空调(LayerNorm),按每个样本自身的通道统计量来归一化。

门也换了。ReLU是一扇老式弹簧门:负值的访客一律被弹出门外(输出硬置为0);GELU是一扇感应门:即使是负值访客,只要“意志坚定”(数值接近0),门也会轻轻留一条缝放行。GELU以标准正态分布的累积概率对输入加权,是一种更平滑、更少“暴力裁员”的激活函数。

ConvNeXt统一使用GELU+LayerNorm,取代了CNN几十年来的"BN+ReLU"黄金组合。在ImageNet上,仅此一项改动就稳定提升了精度,特别是在batch较小或使用大batch分布式训练时,LayerNorm避免了跨卡同步统计量的麻烦。

中央空调+感应门的组合让ConvNeXt在多种batch设置下都住得舒服,也让它与Transformer的“住户体验”完全对齐——毕竟Transformer的房间里标配的就是LayerNorm和GELU。

y=x−μσ2+ε⋅γ+βy = \frac{x - \mu}{\sqrt{\sigma^2 + \varepsilon}} \cdot \gamma + \beta
LayerNorm的数学表达:先减去均值μ、除以标准差σ(加ε防除零),再做可学习的缩放γ和平移β。相当于中央空调按每个房间的“实际面积”(通道统计量)调节温度。
  1. μ与σ²对每个样本所有通道计算出的均值和方差。在ConvNeXt中,这等价于统计整栋楼各房间的温度分布。
    μ=1C∑c=1Cxc,σ2=1C∑c=1C(xc−μ)2\mu = \frac{1}{C}\sum_{c=1}^{C} x_c,\quad \sigma^2 = \frac{1}{C}\sum_{c=1}^{C}(x_c - \mu)^2
  2. ε一个极小的常数(如1e-6),防止方差为0时除零,相当于空调的“安全阀”。
    ε=10−6\varepsilon = 10^{-6}
  3. γ与β可学习参数,让网络可以决定归一化后“室温”的缩放和偏移,相当于住户可以微调中央空调。
    γ∈RC,β∈RC\gamma \in \mathbb{R}^C,\quad \beta \in \mathbb{R}^C

训练秘方:新装修队的软装升级

同样的户型,装修队不同,生活质量天差地别。ConvNeXt论文反复强调:架构只是毛坯房,训练“软装”才是让精度兑现的关键。传统CNN习惯用SGD+Momentum,ConvNeXt则直接请来了Transformer的御用装修队——AdamW优化器。

装修队进场后,一系列现代技巧陆续落地:Mixup和CutMix把不同房间的家具“混搭”训练,RandAugment随机变换墙纸颜色(颜色抖动、几何变换),Stochastic Depth随机跳过某些房间(随机丢弃某些block),Label Smoothing让标签不那么“绝对化”,EMA对模型参数做指数滑动平均,让最终交付的模型更稳。

这些训练策略在Transformer时代已被验证有效,CNN社区却长期没用上。ConvNeXt的可贵之处在于做了详尽的消融实验:仅仅切换训练配方,ResNet-50的Top-1就提升多个百分点;配方和架构协同,才最终实现了87.8%的准确率。好的装修队让同样的材料焕发新生——在深度学习里,“怎么训练”与“设计什么架构”同等重要。

θEMA=β⋅θEMA+(1−β)⋅θ\theta_{\text{EMA}} = \beta \cdot \theta_{\text{EMA}} + (1 - \beta) \cdot \theta
EMA公式:把历史“装修经验”θ_EMA和新“现场反馈”θ按β的比例混合,β接近1时模型更看重长期积累,训练更稳定。
  1. θ模型当前训练得到的参数(权重),相当于装修过程中每次敲定的最新设计稿。
    θ∈R∣params∣\theta \in \mathbb{R}^{|\text{params}|}
  2. θ_EMA指数移动平均后的参数,是多个历史版本加权平均的结果,相当于资深监理综合了历次施工经验。
    θEMA∈R∣params∣\theta_{\text{EMA}} \in \mathbb{R}^{|\text{params}|}
  3. β动量系数,通常取0.999。β越大,历史经验权重越高,参数更新越保守。
    β=0.999\beta = 0.999

性能对比:竣工验收单

改造完成后,小区要接受验收。验收有三张成绩单:居住品质(ImageNet Top-1准确率)、建造成本(参数量)和能耗(FLOPs)。ConvNeXt-B的成绩是87.8% Top-1,Swin-B约为87.3%,两者Flops相当,参数规模也在同一量级。

更关键的差异在“日常维护”(部署效率)。纯卷积在GPU上吞吐量高于窗口注意力,在CPU上更是完胜——因为ViT/Swin需要把特征图切窗、加位置编码、重组,而ConvNeXt只是一连串卷积和矩阵乘法。在COCO目标检测和ADE20K语义分割等下游任务上,ConvNeXt作backbone的表现与Swin持平或略优。

论文还发现,ConvNeXt在ImageNet上即便只用随机裁剪+翻转(简单增强)仍能达到87.5%左右的精度,说明架构本身的归纳偏置强大,不依赖重型数据增强。验收结论:在综合性价比上,改造后的砖瓦房不仅不输玻璃公寓,在“运维费用”上反而更省。

FLOPs≈2⋅H⋅W⋅C⋅k2\text{FLOPs} \approx 2 \cdot H \cdot W \cdot C \cdot k^2
深度卷积的FLOPs估算:只与通道数C成正比,而非标准卷积的C_in×C_out。这就是7×7大窗能耗依然可控的根本原因。
  1. H与W特征图的高度和宽度,决定“多少楼层多少窗户”需要计算。
    H=W=56H = W = 56
  2. C通道数。深度卷积中每个通道独立计算,所以只乘一次C,而不像标准卷积那样乘C_in×C_out。
    C=96C = 96
  3. k²卷积核面积,计算每个窗口内乘法次数。7×7就是49次/窗。
    k2=49k^2 = 49

启示影响:城市更新启示录

ConvNeXt是一张户型图,更是一本“城市更新启示录”。它的第一个启示是:CNN的归纳偏置不过时。自注意力不是性能的唯一来源,局部性、平移等变性这些先验,在图像任务上依然提供巨大红利,而且自带“免费”的效率优势。

第二个启示是“系统思维”:架构改动与训练配方是同一个变量空间,必须一起消融实验,剥离任何一环都可能掉点。第三个启示则来自后续的ConvNeXt V2——它用全卷积掩码自编码器(FCMAE)做自监督预训练,并提出全局响应归一化(GRN),解决特征多样性坍塌问题。

对AI工程师而言,ConvNeXt提供了可复用的工程范式:在没有昂贵算力时,纯卷积网络仍能作为backbone承担视觉任务,且与Transformer生态(如FCMAE自监督)兼容。城市更新没有终点,纯卷积与Transformer的理念仍在互相渗透——理解这段历史,比记住某个模型的层数更重要。

y^=γ⋅x∥x∥2+ε\widehat{\mathbf{y}} = \gamma \cdot \frac{\mathbf{x}}{\|\mathbf{x}\|_2 + \varepsilon}
全局响应归一化GRN:用通道特征的L₂范数对特征做归一化,γ是可学习缩放参数。相当于给每个小区的“总音量”装一个自动均衡器,防止某些房子声音过大盖过别人。
  1. x某一层的特征图(一组通道响应),类似整栋楼各家住户的音量集合。
    x∈RC×H×W\mathbf{x} \in \mathbb{R}^{C \times H \times W}
  2. ‖x‖₂特征的L₂范数,衡量该特征“整体响度”。范数越大说明这层的激活越强。
    ∥x∥2=∑c,h,wxc,h,w2\|\mathbf{x}\|_2 = \sqrt{\sum_{c,h,w} x_{c,h,w}^2}
  3. γ与εγ可学习缩放,控制归一化后的响度;ε防除零。
    γ∈R,ε≈10−6\gamma \in \mathbb{R},\quad \varepsilon \approx 10^{-6}
  4. 整体效果GRN让每个样本的特征响度标准化,避免特征多样性崩塌,确保“每家都有发言权”。
    y^=γ⋅x∥x∥2+ε\widehat{\mathbf{y}} = \gamma \cdot \frac{\mathbf{x}}{\|\mathbf{x}\|_2 + \varepsilon}

AI 应用场景

工业质检:让老产线用上新户型

阶段:模型选型与推理部署

解决的问题:传统视觉方案(ResNet等)误检率高、GPU资源紧张。ConvNeXt是纯卷积架构,FLOPs低、CPU/GPU部署都快,适合在工厂老设备上无痛替换。

具体案例:某PCB缺陷检测产线原来用ResNet-50,误检率3.2%;换用ConvNeXt-Tiny后误检率降到1.8%,且能在老旧GPU上以实时帧率运行,工厂无需更换硬件。

移动端识图:CPU上也能跑的高精度分类

阶段:端侧模型部署与优化

解决的问题:ViT在小模型场景表现不稳,窗口注意力在CPU上有切窗开销;ConvNeXt-Atto/Femto等微型变体专为端侧设计,通道独立计算对移动端NPU友好。

具体案例:一款植物识别App用ConvNeXt-Atto替代MobileNetV3,Top-5准确率提升2个百分点,iPhone单帧推理时间小于15ms。

医学影像分割:backbone的可靠替补

阶段:预训练与微调

解决的问题:医学图像数据量小,ViT往往需要大规模预训练;ConvNeXt自带的卷积归纳偏置在小数据上更稳。

具体案例:某医院肺结节分割项目用UNet+ConvNeXt做backbone替代ResNet,Dice系数提高3.5个百分点,且训练收敛更快。

Python 演示

python51 行
import torchimport torch.nn as nn  class LayerNorm(nn.Module):    # 通道维度的LayerNorm, 支持非最后一个维度的归一化    def __init__(self, dim, eps=1e-6):        super().__init__()        self.eps = eps        self.gamma = nn.Parameter(torch.ones(dim))        self.beta = nn.Parameter(torch.zeros(dim))     def forward(self, x):        # 对C维(dim=1)归一化        mean = x.mean(dim=1, keepdim=True)        var = x.var(dim=1, keepdim=True, unbiased=False)        x = (x - mean) / torch.sqrt(var + self.eps)        return x * self.gamma[:, None, None] + self.beta[:, None, None]  class ConvNeXtBlock(nn.Module):    # 一个ConvNeXt基本模块: 深度卷积 + 倒置瓶颈 + GELU    def __init__(self, dim, kernel_size=7):        super().__init__()        self.dwconv = nn.Conv2d(dim, dim, kernel_size,                                padding=kernel_size // 2, groups=dim)        self.norm = LayerNorm(dim)        self.pwconv1 = nn.Linear(dim, 4 * dim)        self.act = nn.GELU()        self.pwconv2 = nn.Linear(4 * dim, dim)     def forward(self, x):        identity = x        x = self.dwconv(x)        x = self.norm(x)        x = x.permute(0, 2, 3, 1)          # NCHW -> NHWC        x = self.pwconv1(x)        x = self.act(x)        x = self.pwconv2(x)        x = x.permute(0, 3, 1, 2)          # NHWC -> NCHW        return x + identity  if __name__ == "__main__":    dummy = torch.randn(2, 64, 32, 32)    block = ConvNeXtBlock(dim=64)    out = block(dummy)    print(f"输入形状: {tuple(dummy.shape)}")    print(f"输出形状: {tuple(out.shape)}")    params = sum(p.numel() for p in block.parameters())    print(f"模块参数量: {params / 1e3:.2f}K")
目的:从零实现一个可运行的ConvNeXt核心模块,展示深度卷积、通道维LayerNorm、倒置瓶颈和GELU如何组合成一个block。
  1. self.dwconv = nn.Conv2d(dim, dim, kernel_size, padding=kernel_size // 2, groups=dim)深度卷积,groups=dim让每个通道独立卷积,这就是“各看各的落地窗”。
  2. self.norm = LayerNorm(dim)对通道维做LayerNorm,取代BatchNorm,不再依赖batch统计量。
  3. self.pwconv1 = nn.Linear(dim, 4 * dim)倒置瓶颈第一步:把特征维度扩到四倍,相当于把客厅放大。
  4. self.act = nn.GELU()GELU激活,感应门式地保留小幅负值信息。
  5. self.pwconv2 = nn.Linear(4 * dim, dim)倒置瓶颈第二步:压回原维度,信息浓缩。
  6. x = x.permute(0, 2, 3, 1)从NCHW转到NHWC布局,让Linear逐像素作用于通道维。
  7. return x + identity残差连接,确保梯度顺畅回流,改造不改承重墙。

常见误区

误区ConvNeXt不是借鉴Transformer吗?它内部一定有注意力模块,只是论文没细说而已。

正解ConvNeXt整条网络没有任何自注意力或窗口注意力,全部由卷积、归一化、激活和线性层构成。它借鉴的是Transformer的“设计语法”(比如先升维再降维、每层都归一化),而非“机制”。就像老城区改造借鉴了玻璃公寓的户型,但墙依然是砖的,没有换成玻璃幕墙。

为何常见:标题中“借鉴Transformer”容易让人联想到注意力机制,加上Swin等模型确实用了注意力,读者很容易产生“借鉴=使用”的错觉。

误区7×7卷积比3×3大这么多,FLOPs和参数量一定涨了好几倍,训练和推理肯定很慢。

正解深度卷积把通道彻底解耦,FLOPs从k²C²量级降到k²C量级,参数量同理。7×7深度卷积的FLOPs反而可能低于3×3标准卷积。真正的代价是实现层面的访存开销,需要在GPU上做专门优化。

为何常见:直觉上核越大越耗时,但忽略了groups=dim通道解耦带来的计算量骤降——这是反直觉的。

误区一句话总结ConvNeXt:把ResNet里的3×3卷积换成7×7卷积,再加个LayerNorm,就完事了。

正解ConvNeXt是系统性工程:宏观(阶段比例/stem/下采样)、微观(深度卷积/倒置瓶颈/大核)、规范化(LN/GELU)、训练配方(AdamW/正则化/EMA)四层全面向Transformer对齐。只改核大小远达不到87.8%的精度。消融实验证明,每一项改动都在贡献提升。

为何常见:人们习惯用一个最醒目的数字或操作概括一个模型,但ConvNeXt的论文恰恰想传递“系统思维”——整体大于部分之和。

误区ConvNeXt是SOTA架构,用了LayerNorm,那以后视觉模型都应该用LayerNorm,BatchNorm已经过时了。

正解这是一组权衡。LayerNorm在batch小、分布式训练时不依赖全局统计量,适合与Transformer对齐;但BatchNorm在标准大batch CNN训练中依然高效,且推理时统计量固定、零额外延迟。很多工业部署的CNN仍首选BN。

为何常见:看到新SOTA就把其中的组件等同于“更好”,忽略了它在配套设定下才能发挥作用——“更好”永远是相对语境而言的。

面试题

Q1. ConvNeXt的核心构建模块是什么?

单选题 · easy

  • A.全局自注意力机制
  • B.深度卷积加倒置瓶颈← 正确答案
  • C.循环状态空间单元
  • D.多层图神经网络

答案:B。ConvNeXt的block核心是“7×7深度卷积+LayerNorm+倒置瓶颈MLP”,全部由卷积和线性层构成。A是ViT/Swin的注意力机制,C属于Mamba类序列模型,D与卷积网络无关。

Q2. ConvNeXt中使用的7×7卷积被设计为哪种卷积类型?

单选题 · mid

  • A.普通标准卷积
  • B.空洞膨胀卷积
  • C.深度卷积← 正确答案
  • D.转置反卷积

答案:C。ConvNeXt使用深度卷积(groups=输入通道数),本质是深度可分离卷积的深度部分。标准卷积会混合所有通道,膨胀卷积与空洞率无关,转置卷积用于上采样,均不符合。

Q3. 从Transformer中借鉴到ConvNeXt的设计选项包括哪些?

多选题 · mid

  • A.使用LayerNorm作为归一化层← 正确答案
  • B.采用GELU激活函数← 正确答案
  • C.使用倒置瓶颈结构← 正确答案
  • D.引入全局注意力机制

答案:ABC。ConvNeXt借鉴了LN、GELU、倒置瓶颈(类似Transformer MLP先升维再降维),但完全没有引入注意力。D是它刻意回避的设计,整个网络的core仍是卷积。

Q4. ConvNeXt倒置瓶颈的维度变化路径是?

单选题 · mid

  • A.4D→D→4D
  • B.D→4D→D← 正确答案
  • C.D/4→D→D/4
  • D.D→D/4→D

答案:B。倒置瓶颈先把D升到4D再压回D,与Transformer的MLP一致。A是反过来的错误路径;D是传统ResNet瓶颈(先降维再升维)的主要形态;C是混淆写法。

Q5. ConvNeXt中LayerNorm沿哪个维度进行归一化?

单选题 · easy

  • A.在批次的维度上归一化
  • B.在通道的维度上归一化← 正确答案
  • C.在像素的维度上归一化
  • D.不执行任何归一化操作

答案:B。LayerNorm对每个样本的特征维度(即通道维)求均值和方差,不依赖batch。A描述的是BatchNorm,C是把空间与通道混为一谈的常见误解,D显然不符。

Q6. 相比ResNet,ConvNeXt做了哪些宏观架构调整?

多选题 · hard

  • A.阶段块数比例改为3:3:9:3← 正确答案
  • B.stem改用4×4且stride=4卷积← 正确答案
  • C.下采样统一为2×2卷积← 正确答案
  • D.完全删除残差连接并改用全局注意力

答案:ABC。A、B、C都是论文中的宏观改动,目的是让CNN的“空间压缩节奏”对齐Transformer。D是双重错误:ConvNeXt保留了残差连接,且不使用注意力。

Q7. ConvNeXt论文推荐的训练优化器是?

单选题 · mid

  • A.SGD带动量的优化器
  • B.AdamW优化器← 正确答案
  • C.RMSProp优化器
  • D.AdaGrad优化器

答案:B。ConvNeXt沿用Transformer社区的AdamW,替代CNN时代默认的SGD。A是ResNet时代的经典选择,C和D在视觉分类上并不常用,也非ConvNeXt的搭配。

Q8. GELU激活函数在输入x略小于0时的输出特征是?

单选题 · hard

  • A.输出直接硬截断为0
  • B.输出一个较大的负值
  • C.输出一个接近0的负值← 正确答案
  • D.输出值为1保持恒等

答案:C。GELU按概率Φ(x)保留输入。当x<0但接近0时,Φ(x)略小于0.5,输出约为0.5x,是一个小幅负值而非0。A是ReLU的特点;B和D与GELU的平滑加权语义不符。

Q9. 下列对ConvNeXt性能特点的描述正确的是?

多选题 · extreme

  • A.ImageNet准确率约87.8%← 正确答案
  • B.部署纯卷积GPU高效← 正确答案
  • C.COCO检测超越Swin对← 正确答案
  • D.完全替代所有Transformer

答案:ABC。A、B、C均符合论文原始报告:ImageNet-1K约87.8%、纯卷积部署友好、COCO检测与Swin相当或略优。D过于绝对,混合架构和注意力模型仍在众多视觉任务中占有一席之地。

Q10. 深度卷积中分组数groups通常设置为?

单选题 · easy

  • A.等于1的分组数
  • B.等于输入通道的数目← 正确答案
  • C.等于输出通道的数目
  • D.等于批量大小的数目

答案:B。深度卷积是groups=输入通道数的极端分组卷积,每个通道独立运算。A描述标准卷积;C是逐点卷积的混淆;D与分组机制无关——分组数是通道维的参数,从不按batch设定。