手动实现神经网络反向传播的流程
1. 看这行是什么运算(@ / 逐元素 / 广播 / 索引)
2. 接住上游梯度(比如 dhpreact)
3. 按对应规则算局部梯度:
@→ 转置相乘,用形状凑- 逐元素 → 逐元素乘局部导数
- 广播 → 算完再 sum 回原形状
- 分叉/复用 → 多路梯度 相加
4. 检查:算出的梯度形状 == 原变量形状?不对就返工
5. 用cmp()验证 == PyTorch 的结果?
1. 看这行是什么运算(@ / 逐元素 / 广播 / 索引)
2. 接住上游梯度(比如 dhpreact)
3. 按对应规则算局部梯度:
@ → 转置相乘,用形状凑4. 检查:算出的梯度形状 == 原变量形状?不对就返工
5. 用cmp()验证 == PyTorch 的结果?