问题:一个很长的 RNN 网络
N1 -- N2 -- ... --- N100
对于像 一样的优化器AdamOptimizer
,compute_gradient()
它将为所有训练变量提供梯度。
但是,它可能会在某些步骤中爆炸。
像how-to-effectively-apply-gradient-clipping-in-tensor-flow这样的 方法可以裁剪大的最终梯度。
但是如何剪辑那些中间的呢?
一种方法可能是从“N100 --> N99”手动执行反向传播,剪裁渐变,然后是“N99 --> N98”等等,但这太复杂了。
所以我的问题是:有没有更简单的方法来剪辑中间渐变?(当然,严格来说,它们不再是数学意义上的梯度)