我一直在读伊恩·古德费罗的“深度学习书”,其中第6.5.7节提到
该算法的主要内存开销是需要存储隐层非线性的输入。
我理解Back螺旋桨以类似于动态规划的方式存储渐变,所以不会重新计算它们。但我不明白为什么它也存储输入?
发布于 2022-03-23 21:18:08
反向传播是反向模式自动微分(AD)的一个特例。与正向模式相比,反向模式的主要优点是可以计算输出w.r.t的导数。一次计算的所有输入。
但是,缺点是您需要在一个合适的数据结构(如图或Wengert磁带)中存储所有要区分的算法的中间结果,只要您使用反向模式AD计算它的Jacobian,因为您基本上是在通过该算法“向后工作”。
前向模式AD没有这个缺点,但是您需要对每个输入重复它的计算,所以只有当算法的输出变量比输入变量多得多时,它才有意义。
https://stackoverflow.com/questions/71593998
复制相似问题