094、C3k2 源码逐行拆解:Split 通道分割、Bottleneck 堆叠与 Concat 的全流程 094、C3k2 源码逐行拆解:Split 通道分割、Bottleneck 堆叠与 Concat 的全流程从一次诡异的梯度爆炸说起去年年底帮一个做工业缺陷检测的团队调模型,他们用YOLOv11的C3k2模块做特征提取,训练到第80个epoch时loss突然炸到NaN。我远程上去一看,发现他们自己魔改的C3k2里把Split的ratio设成了0.3,Bottleneck堆了6个,Concat之后通道数对不上,最后用1x1卷积硬拉回来——这种写法在PyTorch里不会报错,但梯度流早就乱成一锅粥了。那次debug让我把C3k2的每一行代码重新啃了一遍。今天这篇笔记,咱们就从源码层面把C3k2拆成零件,看看Split怎么切通道、Bottleneck怎么堆叠、Concat怎么拼回去,顺便把那些容易踩坑的细节都标出来。C3k2的骨架:先看forward流程先贴一份最干净的C3k2实现,这是YOLOv11官方仓库里的版本,我加了中文注释和踩坑标记:classC3k2(nn.