蒸馏训练循环
可运行的最小 KD trainer
本节你将能
实现最小可运行的 logits 蒸馏训练步。
直觉模型
每一步:学生交卷 → 对照真标签与教师软卷 → 回传只更新学生。
核心要点
- 只
optimizer学生参数 - 记录 hard/soft/total 三项 loss
- 定期在验证集上比:从头训学生 vs 蒸馏学生
s_logits = student(x)
loss = kd_loss(s_logits, t_logits, y, T=4, alpha=0.3)
optimizer.zero_grad(); loss.backward(); optimizer.step()
常见误区
把教师参数也丢进 optimizer——浪费且易毁教师。
动手
在 CIFAR/子集上跑通 1~3 个 epoch。
互动
测验:反向传播应更新谁。
本节小结
下一节补齐日志、评估与常见坑。