想象你正在搭一座乐高城堡。想让塔楼能看到周围更远的风景,你有两种思路:一种是用一小块一小块的 3×3 积木,一层一层往上垒,垒上十五层才勉强够到远处;另一种是直接拿起一块超大的 31×31 积木,往视野中心一放,整个区域瞬间尽收眼底——但大积木往往笨重、难拼。RepLKNet 的聪明之处就在于:训练时给你好几套积木方案同时试(多分支结构),等方案定稿后,把它熔铸成一块同样功能的整体积木(结构重参数化),拼装时既快又不占地方。这就是本文要讲的“大核卷积 + 结构重参数化”,一种让计算机视觉模型既看得远、又跑得快的设计哲学。

岗位关联

掌握这段知识,你能理解大核卷积为什么能替代视觉 Transformer 的部分效果,以及如何在不牺牲推理速度的前提下,把模型感受野做大——这是设计高精度、高吞吐视觉模型的实用钥匙。

目录
  1. 可视化演示
  2. 感受野对比:小核堆叠与大核一锤定音
  3. 大核设计要点:超大核与深度卷积的组合拳
  4. 结构重参数化:训练多条路,推理一条路
  5. 空间重参数化:看不见的对齐魔法
  6. Block分支设计:标准积木模块
  7. 效率优化策略:把大核变便宜
  8. 对比视觉 Transformer:另一种全局视野
  9. 适用边界与实践:不是万能钥匙
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

展示大核卷积滑窗运算、结构重参数化分支合并及多尺度特征提取,通过特征图与卷积核动态交互直观呈现大核设计的效率优势。

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

大核卷积 大核直接覆盖更大感受野,无需堆叠多层小核 RF = k × k (k=7→RF=49) 大核+深度可分离卷积降低计算量

感受野对比:小核堆叠与大核一锤定音

搭积木时,你发现想看到塔楼背后的风景,得一层层加高。3×3 小积木块每次只能探出头一点点,要垒十五层,视线才能越过围墙;而一块 31×31 的大积木板,一放上去,视线立刻越过围墙。这里的“视线范围”在卷积网络中就叫感受野——输出特征图上一个像素能“看到”输入图像多大区域。

过去大家习惯用小卷积核堆叠来扩大感受野,比如 ResNet 靠几十层 3×3 卷积。这当然有效,但要付出层数多、非线性计算堆叠的巨大代价。而且理论感受野和实际有效感受野并不一致——网络的深度越深,边缘位置的信息会被层层稀释,真正起作用的往往只是中间一小块。所以一层层小积木垒起来,实际能看到的“有效范围”比理论上要小得多。

RepLKNet 的思路直白:与其辛辛苦苦垒十五层小积木,不如直接拿起一块 31×31 的大积木板。它能一次覆盖整个目标区域,把长距离的上下文关系收入眼底。用公式表达,在步长为 1 的情况下,堆叠 n 层大小为 k 的卷积核,感受野边长是:

所以,小核堆叠确实可以逼近大核的视野,但需要更多的层数和计算量。RepLKNet 选择直接用大核,等于把十五层积木换成一块大板——视野一样,块数却从十五变成一。

RFn=1+n(k−1)RF_n = 1 + n(k - 1)
把 n 和 k 代进去:15 层 3×3 卷积的 RF = 1 + 15 × 2 = 31,恰好等价于一个 31×31 大核。但前者要算 15 层,后者只要算 1 层。
  1. 层数 n这是堆叠的卷积层数,每经过一层,观察范围就向外膨胀一圈。
    n=15n = 15
  2. 核大小 k单个卷积核的边长,3×3 卷积的 k 等于 3。
    k=3k = 3
  3. 感受野增长规律每多叠一层,感受野边长在当前基础上增加 k − 1,而不是乘以 k。
    RFn=1+n(k−1)RF_n = 1 + n(k - 1)

大核设计要点:超大核与深度卷积的组合拳

大积木板虽然视野好,但个头大,接口也多。如果它只能接在一个小底座上,反而站不稳。RepLKNet 的实验发现了一个重要规律:大核卷积必须配合足够大的通道数,才能发挥威力;当通道数很少时,大核甚至不如小核。

为什么?因为大核一次覆盖大量空间位置,如果通道数太少,每个通道携带的信息量不足,模型没有足够的“空间”去承载这些位置上的丰富细节。就像一块巨型积木底部只有两个卡扣,虽然板面大,但连接力不够,轻轻一碰就散架。RepLKNet 在实验中把通道数从 64 逐步加大到 1024 后,大核的优势才稳定地体现出来。

这里通道数 C 对应积木的“接口数量”。RepLKNet 用深度卷积实现大核——每个通道单独配一块积木,而不是所有通道共享一块。深度卷积的参数量只跟当前通道数 C 和核大小 k 的平方相关:

大核 + 深度卷积 + 大通道,这三样搭配,就像一块又大又稳的积木板:板面够大(感受野)、重量够轻(参数少)、接口够多(通道丰富),三者缺一不可。

Pdw=k2⋅C,Ppw=C2P_{dw} = k^2 \cdot C, \qquad P_{pw} = C^2
普通卷积的参数量是 k²·C_in·C_out,而深度卷积只有 k²·C。RepLKNet 再用两个 1×1 点卷积(参数量 C²)负责通道间的信息融合,整体参数依然可控。
  1. 核大小 k²卷积核内部有 k×k 个位置,每个位置都有一份权重,所以是平方关系。
    k2=31×31=961k^2 = 31 \times 31 = 961
  2. 通道数 C深度卷积对每个输入通道单独处理,所以参数量只和通道数 C 成正比。
    Pdw=k2⋅CP_{dw} = k^2 \cdot C
  3. 点卷积 C²1×1 卷积把 C 个通道映射到 C 个通道,等价于一个 C×C 的矩阵。
    Ppw=C2P_{pw} = C^2

结构重参数化:训练多条路,推理一条路

如果只是把大核直接放进网络,训练和推理都要面对 31×31 的昂贵计算。RepLKNet 的办法是“先演练,再定型”——训练时,你手里同时拿着好几套积木方案:主方案是 31×31 大核,辅助方案包括 1×1 小核和恒等残差分支。这三套方案并行工作、互相补充,让模型学到更丰富的特征。等训练完成,再把这套多方案积木“熔铸”成一块整体积木——这就是结构重参数化。

熔铸的数学基础很简单:卷积是线性运算,把几个分支的输出相加,等价于把几个卷积核的权重相加后再做一次卷积。每个分支的卷积核先经过“padding 对齐”补成同样大小,然后逐元素相加。融合后的单分支只保留一个卷积核,在推理时完全不增加额外计算量:

这就像积木套装说明书里画了多种搭法,但你最终只把其中最有效的一套搭出来。训练时模型从多分支中获得更强的梯度信号,推理时却只保留一条最精简的路径,实现“训练虽重,推理却轻”。

y=∑b=1BConv(x,W(b))=Conv(x,∑b=1BW(b))y = \sum_{b=1}^{B} \mathrm{Conv}(x, W^{(b)}) = \mathrm{Conv}\left( x, \sum_{b=1}^{B} W^{(b)} \right)
训练时 B 个分支各自出力,推理时把 B 个核相加成一个核。输出结果在数学上完全一致,但推理阶段只算一次卷积。
  1. 分支数 BRepLKNet 的 Block 里通常有 3 个分支:大核主分支、1×1 分支、恒等残差分支。
    B=3B = 3
  2. 每个分支的卷积每个分支对同一个输入 x 做卷积,得到输出特征图。
    Conv(x,W(b))\mathrm{Conv}(x, W^{(b)})
  3. 权重相加因为卷积对输入是线性的,多个卷积结果相加等价于用“权重之和”做一次卷积。
    ∑b=1BConv(x,W(b))=Conv(x,∑b=1BW(b))\sum_{b=1}^{B} \mathrm{Conv}(x, W^{(b)}) = \mathrm{Conv}\left( x, \sum_{b=1}^{B} W^{(b)} \right)

空间重参数化:看不见的对齐魔法

多套积木要熔成一整块,前提是每块小积木都卡在准确的位置上。31×31 大核和 1×1 小核形状不同,直接相加就像把不同孔位的积木硬叠在一起,根本咬合不上。RepLKNet 的空间重参数化就是解决这个对齐问题的魔法。

它给每个分支的卷积核学习一个位置偏移量,允许小核“滑动”到大核内部的任意位置。在训练时,各分支可以用自己的偏移量灵活地观察不同区域;推理时,根据偏移量把每个小核补零(padding)成大核的大小,再放到对应位置逐元素相加。这样无论分支原先生长在哪个位置,融合后的总核都能保持空间对齐,输出与训练时完全一致:

这就像拼乐高时,每块小零件上其实都印着隐性编号,熔铸师按编号把它们焊到大板正确的位置上。融合后的核虽然来自多个分支,但外观、尺寸、计算方式都整齐划一,部署时毫无破绽。

Wsum(i,j)=∑b=1BW(b)(i−Δib,  j−Δjb)W_{sum}(i, j) = \sum_{b=1}^{B} W^{(b)}(i - \Delta i_b,\; j - \Delta j_b)
其中 Δi、Δj 是每个分支学习到的空间偏移。相当于每块小积木都记录了自己“本来该待在哪个卡槽”,熔铸时按记录归位。
  1. 目标位置 (i, j)融合后的大核在坐标 (i, j) 处要放上各分支贡献的权重。
    (i,j)∈{1,2,…,k}2(i, j) \in \{1, 2, \dots, k\}^2
  2. 偏移量每个分支在 x 和 y 方向上的位置偏移,决定小核放在大核内的哪里。
    (Δib,Δjb)(\Delta i_b, \Delta j_b)
  3. 加权归位把第 b 个分支的核从它的偏移位置“拉”回目标位置,再求和。
    Wsum(i,j)=∑b=1BW(b)(i−Δib,  j−Δjb)W_{sum}(i, j) = \sum_{b=1}^{B} W^{(b)}(i - \Delta i_b,\; j - \Delta j_b)

Block分支设计:标准积木模块

好的积木套装不只靠一块大板,还需要一系列标准化配件。RepLKNet 的每个基础 Block 就是一个“标准积木模块”,它把大核、点卷积、残差连接组合在一起,让整个网络像乐高套装一样可自由堆叠。

这个 Block 采用倒残差结构:输入先经过一个 1×1 卷积把通道数放大 λ 倍(相当于把接口变多),中间是 31×31 的深度卷积负责看大范围,最后再用一个 1×1 卷积把通道数压缩回原样(相当于把接口收敛)。此外还配有残差连接,让梯度能直接从输入走到输出;在部分配置中还会加入 SE 模块,自动给不同通道分配重要度权重。整个 Block 的输入输出关系可以写成:

整个 Block 的每个配件都有明确分工:1×1 管通道交流,大核管空间视野,残差管梯度畅通,SE 管注意力侧重。它们组合在一起,形成了 RepLKNet 可大规模堆叠的基本单元。

xout=x+C1×1( C31×31dw(C1×1(x)))x_{out} = x + \mathcal{C}_{1\times1}\left(\ \mathcal{C}_{31\times31}^{dw}\left( \mathcal{C}_{1\times1}(x) \right)\right)
这里 C 表示卷积层,dw 表示深度卷积。先扩展通道,再看大视野,再压缩通道,最后把原始输入加回来。
  1. 1×1 扩展把通道数放大 λ 倍,为深度卷积提供足够的“接口”。
    C1×1(x)\mathcal{C}_{1\times1}(x)
  2. 31×31 深度卷积对每个通道独立做大核卷积,捕捉长距离空间关系。
    C31×31dw(⋅)\mathcal{C}_{31\times31}^{dw}(\cdot)
  3. 1×1 压缩与残差把通道数压回原大小,再和输入 x 相加。
    xout=x+C1×1(⋯ )x_{out} = x + \mathcal{C}_{1\times1}(\cdots)

效率优化策略:把大核变便宜

大积木板虽然好用,但如果运费太贵,还是没人愿意用。RepLKNet 的效率优化,就是想办法把 31×31 大核的“运费”降到和小核差不多。核心手段有两个:一是用深度卷积让参数只跟通道数成正比,而不是和输入输出通道数的乘积成正比;二是在推理阶段用结构重参数化把多分支折叠成单分支,省掉所有额外计算。

用计算量公式可以看得更清楚。假设特征图是 H×W,普通卷积做一次大核运算需要遍历输入通道 C_in 和输出通道 C_out;而深度卷积只需要在 C 个通道上各做一次核运算:

大积木经过“空心化”(深度卷积)和“熔铸定型”(重参数化),实际运输成本大幅降低。这也回答了一个常见疑惑:为什么 RepLKNet 敢用 31×31 的巨核,因为它的有效成本早就被设计压低了。

FLOPsdw=H⋅W⋅k2⋅C,FLOPsstd=H⋅W⋅k2⋅Cin⋅Cout\mathrm{FLOPs}_{dw} = H \cdot W \cdot k^2 \cdot C, \qquad \mathrm{FLOPs}_{std} = H \cdot W \cdot k^2 \cdot C_{in} \cdot C_{out}
当 C_in 和 C_out 都远大于 1 时,深度卷积能省下几百上千倍计算量。加上重参数化后推理只有单分支,大核的额外负担基本被清零。
  1. 特征图尺寸 H×W每个输出位置都要算一次卷积,位置越多计算量越大。
    H⋅WH \cdot W
  2. 核内位置数 k²31×31 的核有 961 个位置,所以计算量随核大小平方增长。
    k2k^2
  3. 深度卷积 vs 普通卷积普通卷积要为每对输入输出通道算一遍核,深度卷积只需在每个通道算一遍。
    FLOPsdw=H⋅W⋅k2⋅C≪FLOPsstd=H⋅W⋅k2⋅Cin⋅Cout\mathrm{FLOPs}_{dw} = H \cdot W \cdot k^2 \cdot C \ll \mathrm{FLOPs}_{std} = H \cdot W \cdot k^2 \cdot C_{in} \cdot C_{out}

对比视觉 Transformer:另一种全局视野

在 RepLKNet 出现之前,大家普遍觉得只有视觉 Transformer 的全局注意力才能捕捉长距离依赖。注意力像把所有积木两两比对,寻找最佳拼合方式——全局性好,但计算量随积木数量平方增长。大核卷积则像拿一块大视窗板,一眼覆盖全局,不需要两两比对,计算量只随积木数量线性增长。

RepLKNet 的论文用大量实验证明:大核卷积可以获得与全局注意力相当的有效感受野,在 ImageNet 分类、语义分割、目标检测等任务上都能媲美 Swin Transformer,而且推理吞吐量更高。这背后的原因是,对于自然图像来说,长距离依赖往往有空间结构,并不需要像注意力那样对所有位置对做动态加权;一个足够大的静态卷积核,已经能覆盖绝大多数关键上下文。

可以对比两者的计算复杂度。假设特征图有 N 个位置,注意力需要计算 N×N 的两两关系,而卷积只需要对每个位置计算一个 k×k 的局部窗口:

RepLKNet 用一块“大视窗板”替代了“两两比对”,绕开了注意力平方级的高额成本,同时不牺牲全局视野。这不是说注意力没用,而是告诉工程师:通往全局视野的路,不止一条。

O(N2d)vs.O(Nk2C)O(N^2 d) \quad \text{vs.} \quad O(N k^2 C)
其中 N 是位置数,d 是注意力维度,k 是卷积核边长。当 N 远大于 k² 时,大核卷积的复杂度远低于注意力。
  1. 位置数 N特征图上输出像素的总个数,例如 56×56 的特征图 N=3136。
    N=H×WN = H \times W
  2. 注意力复杂度每个位置都要和其他所有位置计算关联,所以是 N²,维度 d 是每对关系向量的长度。
    O(N2d)O(N^2 d)
  3. 卷积复杂度每个位置只和周围 k×k 窗口内的位置交互,复杂度与 N 成线性。
    O(Nk2C)O(N k^2 C)

适用边界与实践:不是万能钥匙

大积木板虽好,却不能一味追求大。在积木箱很小(模型通道少)、运输预算有限(移动端算力低)的场景下,一块大板反而放不进箱子。RepLKNet 的实验表明,大核在高分辨率、大模型、密集预测任务(如分割、检测)中优势明显;但在低分辨率小模型上,大核带来的收益会被它造成的计算开销吃光。

工程选型时要看“预算约束”。核大小 k 越大,计算量和参数量按 k² 增长。如果在部署平台上给模型的算力预算是 B,那核大小不能无限增大,需要满足约束:

所以 RepLKNet 并不是在鼓吹“核越大越好”,而是在告诉你:当你有了足够大的模型和算力预算,大核卷积是一条兼顾精度与速度的路线;而当你手里只有小积木盒时,还是老老实实选小核更稳妥。

max⁡k Acc(k)s.t.k2⋅C≤B\max_{k} \ \text{Acc}(k) \quad \text{s.t.} \quad k^2 \cdot C \le B
意思是:在预算 B 内选一个能让准确率最高的核大小。移动端通常用 5×5 或 7×7,服务器和云端才用得上 31×31。
  1. 目标函数我们希望选择核大小 k,使模型准确率最高。
    max⁡k Acc(k)\max_{k} \ \text{Acc}(k)
  2. 预算约束核平方乘以通道数不能超过预算 B,防止大核把算力吃光。
    k2⋅C≤Bk^2 \cdot C \le B
  3. 工程含义高性能场景预算宽裕,可以放开用大核;移动端预算紧张,就要回归小核或做卷积分解。
    kmobile≤7≪31k_{\text{mobile}} \le 7 \ll 31

AI 应用场景

遥感影像语义分割

阶段:模型骨干网络设计与选型

解决的问题:遥感图像分辨率高、地物尺度跨度大,一片农田到相邻城区往往相隔数百像素。传统小核卷积堆叠几十层才能看到足够上下文,导致分割边界模糊、大目标内部不一致。RepLKNet 用 31×31 大核骨干一次捕获大范围空间关系,再配合结构重参数化保证部署时推理不减速,让分割模型既看得远又跑得快。

具体案例:某农业科技公司用 RepLKNet 作为 U-Net 的编码器,对 1024×1024 的卫星影像做耕地地块分割。相比 ResNet-50 编码器,mIoU 提升约 3.2%,单图推理时间反而缩短 18%。工程师只改了几行骨干网络替换代码,就同时拿到精度和速度收益。

工业质检缺陷检测

阶段:目标检测与分类模型部署优化

解决的问题:手机屏幕、电路板等产品表面缺陷往往很小,但周围纹理、光照变化又需要大范围参考才能判断是否真的异常。小核模型容易把局部纹理误判成缺陷。RepLKNet 的大核感受野让模型同时看到缺陷周围的全局环境,而重参数化后的单分支结构刚好满足产线毫秒级推理的实时要求。

具体案例:一家面板制造厂把检测模型的主干从 ResNet 换成 RepLKNet-Large,缺陷召回率从 92% 提升到 96.4%,漏检率下降一半。由于推理阶段已融合为单核,部署在工业边缘计算盒上依然能达到 80 FPS,没有增加硬件成本。

Python 演示

python47 行
import numpy as np def conv2d_same(x, w):    """对二维输入 x 做 same 模式卷积,w 为卷积核"""    kh, kw = w.shape    ph, pw = kh // 2, kw // 2    x_pad = np.pad(x, ((ph, ph), (pw, pw)), mode='constant')    out = np.zeros_like(x)    for i in range(x.shape[0]):        for j in range(x.shape[1]):            out[i, j] = np.sum(x_pad[i:i + kh, j:j + kw] * w)    return out def pad_to_size(w, target):    """把卷积核 w 中心对齐地补零到 target×target"""    kh, kw = w.shape    pad_h = (target - kh) // 2    pad_w = (target - kw) // 2    return np.pad(w, ((pad_h, target - kh - pad_h),                      (pad_w, target - kw - pad_w)), mode='constant') def fuse_branches(branches, target):    """把多个分支的卷积核相加,得到融合核"""    fused = np.zeros((target, target))    for w in branches:        fused += pad_to_size(w, target)    return fused def main():    np.random.seed(0)    x = np.random.randn(9, 9)          # 模拟输入特征图    large_k = np.random.randn(5, 5)    # 模拟 31×31 大核主分支    small_k = np.random.randn(3, 3)    # 模拟 1×1 小核分支    identity_k = np.ones((1, 1))       # 模拟恒等残差分支     fused = fuse_branches([large_k, small_k, identity_k], 5)     out_branch = (conv2d_same(x, large_k)                  + conv2d_same(x, pad_to_size(small_k, 5))                  + conv2d_same(x, pad_to_size(identity_k, 5)))    out_fused = conv2d_same(x, fused)     diff = np.max(np.abs(out_branch - out_fused))    print("多分支输出与融合后输出最大误差:", diff) if __name__ == "__main__":    main()
目的:用 numpy 模拟 RepLKNet 结构重参数化的核心操作,证明“多分支卷积之和等价于融合核的一次卷积”。
  1. def conv2d_same(x, w):实现最基本的二维卷积,same 模式保证输出尺寸和输入一致。
  2. np.pad(x, ((ph, ph), (pw, pw)), mode='constant')给输入四周补零,对应卷积中的 padding 操作。
  3. def pad_to_size(w, target):把不同尺寸的分支卷积核补零成同一个 target 尺寸,这就是分支对齐的关键。
  4. def fuse_branches(branches, target):把多个分支核逐元素相加,形成融合核。
  5. for i in range(x.shape[0]):逐像素滑动窗口计算卷积,便于理解数学原理,实际深度学习框架会用矩阵乘法加速。
  6. np.max(np.abs(out_branch - out_fused))比较两路输出,误差接近 0 即验证了结构重参数化的可行性。

常见误区

误区“31×31 的卷积听着就吓人,参数是 3×3 的一百倍,模型肯定又大又慢,怎么可能部署?”

正解RepLKNet 用的是深度卷积,每个通道只有一个独立的 31×31 核,参数量从 k²·C_in·C_out 降到 k²·C。以 C=256 为例,单个深度大核约 24.6 万参数,而普通大核要 6400 多万,降了约 260 倍。推理时结构重参数化又把多分支合并成单核,实际运行的计算量和普通卷积差不多。

为何常见:很多人默认“大卷积核”就是“普通大卷积”,忽略了深度卷积这种通道独立设计的降参魔法。

误区“既然 RepLKNet 证明大核好,那我直接把所有 3×3 换成 31×31,模型精度肯定涨。”

正解大核的优势依赖大通道数量。当模型很小、通道数不足时,大核反而会因为信息量不足而表现不如小核。RepLKNet 论文中的消融实验显示,通道数小时大核没有收益;只有通道数足够大,大核才能发挥出“一次看全局”的威力。

为何常见:只看到“大核=大感受野”的表面结论,忽略了论文里“大核需要大通道”这个前提条件。

误区“推理时分支变少了、参数变少了,这不就是剪枝或蒸馏吗?”

正解剪枝和蒸馏会改变模型行为、牺牲部分精度;结构重参数化是严格的数学等价变换——训练时的多分支输出相加,与推理时用融合核做一次卷积,在数学上完全一致(仅存在浮点舍入误差)。它不是“压缩”,而是“合并同类项”。

为何常见:因为两者都让推理时的参数变少,初学者容易把“等价变换”和“有损压缩”混为一谈。

误区“大核卷积有了全局感受野,就说明它能像 Transformer 一样做动态全局建模,可以随便替代注意力。”

正解大核卷积是静态权重,对每个位置用的是同一套核参数;注意力是按输入内容动态计算每个位置与其他位置的关系。两者都能实现大感受野,但内在机制不同。RepLKNet 证明大核在不少视觉任务上可以达到媲美注意力的效果,但并非“替代注意力”,而是提供了一条更便宜、更符合图像先验的全局建模路线。

为何常见:混淆了“感受野范围”和“内容自适应能力”两个概念,看到实验指标相近就认为机制也相同。

误区“反正用了深度卷积和重参数化,FLOPs 不高,任何设备都能轻松跑起来。”

正解理论 FLOPs 低不代表实际推理快。31×31 的深度卷积在某些 GPU 上有高效实现,但在不少移动端推理库中对大核支持很差,甚至会触发低效的 im2col 路径。工程上需要实测不同框架和硬件,必要时把大核分解成多个小核或选择更小的核大小。

为何常见:只盯着理论计算量,忽略了深度学习框架底层算子在各种硬件上的优化程度差异。

面试题

Q1. RepLKNet 使用哪种卷积实现 31×31 大核,从而大幅降低参数量?

单选题 · easy

  • A.普通 31×31 卷积
  • B.31×31 深度卷积← 正确答案
  • C.转置卷积
  • D.空洞卷积

答案:B。RepLKNet 用深度卷积实现大核,每个通道单独卷,参数量从 k²·C_in·C_out 降到 k²·C。转置卷积用于上采样,空洞卷积不增加参数量但也不属于本文的核心设计。深度卷积是关键。

Q2. 结构重参数化的核心思想是什么?

单选题 · mid

  • A.训练时用多分支,推理时融合成单分支← 正确答案
  • B.训练完把所有层量化成低精度
  • C.把大网络的知识蒸馏给小网络
  • D.训练时随机丢弃部分卷积核

答案:A。结构重参数化利用卷积的线性性质,把训练时的多个分支在推理时合并为一个等价卷积核。量化、蒸馏、丢弃都属于其他优化方向,不是结构重参数化的含义。

Q3. 步长为 1 时,15 层 3×3 卷积堆叠的感受野边长等于哪个大核?

单选题 · mid

  • A.15×15 大核
  • B.31×31 大核← 正确答案
  • C.45×45 大核
  • D.7×7 大核

答案:B。感受野公式 RF_n = 1 + n(k−1),代入 n=15、k=3 得 1+15×2=31。所以 15 个 3×3 堆叠等价于一个 31×31 大核,这也是 RepLKNet 选择 31 的原因之一。

Q4. RepLKNet 的实验表明,大核卷积要发挥优势需要什么条件?

单选题 · mid

  • A.配合足够大的通道数← 正确答案
  • B.使用更大的批大小
  • C.使用更小的输入分辨率
  • D.配合数据增强

答案:A。论文消融显示,通道数小时大核收益消失甚至为负;只有通道数足够大,大核才能承载丰富的长距离信息。batch 大小、分辨率、增强与这一结论无关。

Q5. 空间重参数化解决的核心问题是什么?

单选题 · hard

  • A.训练时各分支的卷积核空间位置无法对齐← 正确答案
  • B.推理时计算资源不足
  • C.训练数据分布不均衡
  • D.梯度在深层网络中消失

答案:A。多个分支的卷积核尺寸不同,融合前需要把 1×1、残差分支的核补零并对齐到大核坐标框架。空间重参数化就是学习或设定偏移量,让融合时每个分支的权重正确归位,保证数学等价性。

Q6. RepLKNet 的 Block 中“倒残差结构”指的是什么?

单选题 · hard

  • A.1×1 扩展通道 → 大核深度卷积 → 1×1 压缩通道← 正确答案
  • B.直接用大核普通卷积替换所有层
  • C.两个分支相加后共享权重
  • D.用循环卷积实现特征复用

答案:A。倒残差结构源自 MobileNetV2,先放大通道再压缩。RepLKNet 把中间的 3×3 深度卷积换成 31×31,两边配 1×1 点卷积负责通道间融合。其他选项是常见干扰项。

Q7. 下列哪些是 RepLKNet 提升大核效率的手段?

多选题 · easy

  • A.深度卷积降低参数量← 正确答案
  • B.结构重参数化减少推理分支← 正确答案
  • C.放弃批归一化层
  • D.把输入图像缩小

答案:AB。深度卷积和结构重参数化是论文两大核心效率武器,分别降低参数和推理计算。批归一化在训练中仍然使用;缩小输入会损失信息,不是模型设计层面的效率策略。

Q8. 与视觉 Transformer 的注意力相比,大核卷积的优势有哪些?

多选题 · mid

  • A.推理速度更快、吞吐更高← 正确答案
  • B.同样能获得大的感受野← 正确答案
  • C.计算复杂度随序列长度平方增长
  • D.保留了卷积的局部结构先验← 正确答案

答案:ABD。大核卷积复杂度与位置数线性相关,远低于注意力的 N²;它通过大核获得全局感受野,同时保留卷积的平移等变性等先验。C 是注意力的劣势而非大核优势。

Q9. 为什么结构重参数化在数学上是可行的?

多选题 · hard

  • A.卷积层是线性运算← 正确答案
  • B.多个分支的输出可以直接相加← 正确答案
  • C.批归一化的均值和方差可折叠进卷积权重← 正确答案
  • D.ReLU 激活函数是线性变换

答案:ABC。卷积线性、多分支可加、BN 可折叠为卷积的缩放和偏置,这些都是重参数化的数学基础。ReLU 是非线性的,所以重参数化只能在 BN 和卷积之间做融合,不能跨过 ReLU 简单合并。

Q10. 以下哪个场景最适合采用 RepLKNet 的大核设计?

单选题 · easy

  • A.移动端低算力小模型
  • B.云端高分辨率分割任务← 正确答案
  • C.只有 10 类的小规模分类
  • D.内存受限的嵌入式设备

答案:B。大核在高分辨率、大模型、密集预测任务上优势最明显。移动端、嵌入式、小数据场景下大核的算力成本和过拟合风险超过收益,应该保守选核。