LESSON p.4 · 验收 · 180 分钟
先修掌握门:跑通第一条训练循环
先修掌握门:跑通第一条训练循环:理解数据、张量、前向、损失、反向、更新、测试与复现,完成“从文本计数走到一个可测试的单步梯度更新”。属于「零基础先修加速带」学习阶段。
学完你应该能够
- 能按数据→前向→损失→反向→更新顺序解释训练循环。
- 能区分参数值、梯度和优化器更新的职责。
- 能用 shape、有限性与 loss 变化设置最低限度断言。
- 能在固定随机种子下复现实验并保存失败现场。
核心概念
数据与参数
输入和标签是观测数据,参数是优化器要改变的状态。两者 shape 可能相似,但生命周期和 requires_grad 完全不同。
前向与 logits
前向计算把输入和参数变成未归一化分数。先断言 batch、类别维和有限性,再交给损失函数。
loss 标量
交叉熵把一批预测压成可优化标量。标量变小只说明当前数据与目标下的拟合改善,不自动证明泛化。
backward 与 grad
backward 沿计算图累积每个叶子参数对 loss 的梯度。重复调用前必须理解梯度是否清零,否则累积可能是意图也可能是 bug。
参数更新
更新要在 no_grad 下执行,随后清零梯度。学习率决定沿负梯度移动的步长;一次更新可用新 loss 与手算方向共同检查。
实践任务
从文本计数走到一个可测试的单步梯度更新
- 固定两条 one-hot 输入、标签、初始权重与随机种子,手算初始 logits。
- 运行 forward、cross_entropy、backward 和一次 SGD 更新,记录每个张量 shape。
- 断言 loss 有限、grad 非空、参数发生变化,并再次计算 loss。
- 依次破坏标签范围、dtype、grad 清零和 shape,保存报错或异常曲线。