LESSON p.4 · 验收 · 180 分钟

先修掌握门:跑通第一条训练循环

先修掌握门:跑通第一条训练循环:理解数据、张量、前向、损失、反向、更新、测试与复现,完成“从文本计数走到一个可测试的单步梯度更新”。属于「零基础先修加速带」学习阶段。

学完你应该能够

  1. 能按数据→前向→损失→反向→更新顺序解释训练循环。
  2. 能区分参数值、梯度和优化器更新的职责。
  3. 能用 shape、有限性与 loss 变化设置最低限度断言。
  4. 能在固定随机种子下复现实验并保存失败现场。

核心概念

数据与参数

输入和标签是观测数据,参数是优化器要改变的状态。两者 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,保存报错或异常曲线。

进入完整互动课程