章节摘要:网络结构可以换,训练环不能缺。本章把卷积神经网络收到「给每个像素出类别」这一件事上,用一套动态图框架把数据、前向、损失、反向、保存串成能在一张消费级显卡上跑的最小闭环。不写框架对照长文,只写你今晚能跑通的那条路径。
阅读完本章,你应当能够:
金句:先让损失在一张图上降到接近零,再谈泛化。环是通的,模型才有资格被骂。
神经元、卷积核、池化、全连接在分类网里的角色,以及为何分割要把全连接换成卷积,让任意分辨率的图都能出同尺寸的分数图。
以动态图风格写模块、写循环。静态图框架能做同一件事,但本教程选定一条路走到底,避免对照占用篇幅。重点是过拟合单图、保存与加载、把掩码的数据类型对齐到损失。
交叉熵管像素分类,Dice 管重叠。SGD、动量、Adam 怎么影响边界抖动。mIoU、Dice、精确率、召回率何时一起看。
先懂卷积为什么能扫图,再把扫图接到可运行的循环,最后把循环里的标量换成分割真正该优化的量。
4.1 卷积积木 ──► 4.2 最小训练环 ──► 4.3 损失与尺子 │ └► 过拟合单图验收
三节的交卷物是:一张尺寸账(每层高宽通道)、一段能过拟合单图的循环、一份损失与指标函数(含背景开关)。缺尺寸账,融合时会差一圈像素。缺单图过拟合,全量不收敛时无法归因。缺纯指标函数,训练日志和客户报告会各说各话。
本章不对比两套框架的语法。团队若已有静态图训练脚本,把掩码形状和 Dice 接进去即可,不必重写。选定一条路后,第 5 章所有结构都往这条环上插模块,不另开炉灶。
| 验收 | 通过标准 |
|---|---|
| 尺寸 | 输出与掩码同高同宽 |
| 单图 | 叠图逼近真值,损失接近零 |
| 指标 | 与报告同一是否含背景 |
| 存盘 | 含均值方差、边长、类表 |
⚠️ 只看损失下降、不看叠图,会把前景全灭当成胜利。
💡 环是通的,模型才有资格被骂容量不够。
三节对应三种 bug 产地:尺寸账、循环与设备、损失口径。出问题按这个顺序查,不要先换 Adam。单图过拟合是本章的编译器:过不了不要提交全量实验。选定动态图循环之后,禁止再维护一套「演示用」的高层 fit 脚本,两套口径会在第 6 章打架。把 logits 形状打印留在代码里,比写长注释有用。
把单图过拟合截图和 logits 形状日志贴进合并请求。没有这两样,全量实验视为未就绪。环的代码冻结后只允许换模块对象,不允许再开一套 fit。口径打架比结构落后更伤。
合并请求模板三附件:尺寸账、单图叠图、logits 形状。缺一拒合。环冻结清单写明「允许换模块对象,不允许新开 fit」。有人图快再写一套高层封装,评审应要求删除或证明口径一致。口径一致比结构新颖优先。
三附件缺一的合并请求直接关闭重开。环冻结后的 fit 新封装在代码搜索里应为零命中。有命中就删。单图叠图必须能看出类别颜色,灰度糊图不算附件。
搜索命中新 fit 即删。叠图附件要上色。关闭重开的请求必须带三附件再来。环冻结清单贴在仓库根说明,避免口头传达丢失。单图不过拟合的全量作业调度器直接拒绝。尺寸账、叠图、形状日志三件套成为本章的编译器输出。
单图不过拟合,全量作业调度器必须拒绝,不许用「先跑着看曲线」绕过编译器。
本章故意短而硬。很多人把「会调用现成分割库」当成会训练,结果改损失改不动、改学习率看不懂曲线。把环写明白,第 5 章的结构图才不是装饰。