- 前向传播:按顺序(从输入层到输出层)计算和存储神经网络中每层的结果。
- 计算图:可视化计算中操作符和变量的依赖关系的图形。其中正方形表示变量,圆圈表示操作符。 左下角表示输入,右上角表示输出。 注意显示数据流的箭头方向主要是向右和向上的。
- 反向传播:指的是计算神经网络参数梯度的方法。简言之,该方法根据微积分中的链式规则,按相反的顺序从输出层到输入层遍历网络。 该算法存储了计算某些参数梯度时所需的任何中间变量(偏导数)。
- 在训练神经网络时,前向传播和反向传播相互依赖。 对于前向传播,我们沿着依赖的方向遍历计算图并计算其路径上的所有变量。 然后将这些变量用于反向传播,利用反向传播给出的梯度来更新模型参数。为了避免重复计算,我们需要保留中间值,直到反向传播完成。这也是训练比单纯的预测需要更多的内存(显存)的原因之一。 此外,这些中间值的大小与网络层的数量和批量的大小大致成正比。 因此,使用更大的批量来训练更深层次的网络更容易导致内存不足错误。
动手学深度学习4.7 前向传播、反向传播和计算图-笔记&练习(PyTorch)
2023-12-08 15:46:03 33 阅读