094、C3k2 源码逐行拆解:Split 通道分割、Bottleneck 堆叠与 Concat 的全流程
2026/7/3 9:32:24 网站建设 项目流程

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.<

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询