返回 深度学习 思维导图
中文·English
🧠 深度学习ID: training-debugging

训练调试流程

Training Debugging
🎯核心定义
系统化的训练排查流程。第一步单 batch 过拟合: 只用 1 个 (或几个) 样本训练, 理想情况下 loss 应快速降到 ~0, 不降说明实现有 bug — 依次检查数据管线 (标签错位/归一化/打乱)、前向 (loss 写错/维度不匹配)、反向 (梯度未传/被 detach)、优化器 (参数确实更新); 确认梯度正确后再逐步放大数据与模型。第二步 loss 曲线诊断: train loss 高且不降 → 欠拟合 (容量不足/学习率问题/特征工程); train 降而 val 不降甚至升 → 过拟合 (加数据/加正则/降容量); train 与 val 同步停滞 → 学习率过小或数据问题 (标签噪声/样本乱序); loss 震荡发散 → 学习率过大或梯度爆炸。第三步检查梯度/权重统计: 梯度范数 NaN 或爆炸 → 梯度裁剪或降学习率; 权重全零 → 初始化问题或 dead ReLU。
💡使用场景
任何模型训练不收敛、loss 变 NaN、val 上不去时的第一反应流程; 面试常问 “loss 不降/变 NaN 怎么排查”。
解决的核心痛点
把训练失败从“玄学调参”变成可定位的层次化排查: 单 batch 过拟合能在几分钟内判定“代码对不对”, 先隔离实现 bug, 再诊断容量/数据/优化问题, 避免在实现有错时盲目调超参浪费算力。
🎯5 个高频面试考点 (Exam Points)
1
单 batch 过拟合调试的步骤与原理? 它优先排查哪类 bug?
2
训练 loss 不降时的排查顺序 (数据管线→前向→反向→优化器)?
3
欠拟合、过拟合、学习率过小/过大各自的 loss 曲线形态?
4
loss 变 NaN 的常见原因与排查方法?
5
train 高 val 低与 train 低 val 高分别如何修复?
📖 关联深度指南:📄 debugging-and-dl-comp
更新于 2026-08-12
🎯
检验攻克程度:针对「训练调试流程」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题
上一个知识点VAE 与重参数化下一个知识点Autograd 动态图

🔗 更多 深度学习 知识点卡片

激活函数演进Adam/AdamWBatchNorm 批归一化经典 CNN 演进