Проблема: очень длинная сеть RNN
N1 -- N2 -- ... --- N100
Для оптимизатора, такого как AdamOptimizer
, compute_gradient()
даст градиенты всем обучающим переменным.
Однако на каком-то этапе он может взорваться.
Метод, подобный описанному в как-эффективно- apply-gradient-clipping-in-tensor-flow может обрезать большой окончательный градиент.
Но как обрезать эти промежуточные?
Один из способов может заключаться в том, чтобы вручную сделать бэкпроп из "N100 --> N99", обрезать градиенты, затем "N99 --> N98" и так далее, но это слишком сложно.
Итак, мой вопрос: есть ли более простой способ обрезать промежуточные градиенты? (конечно, строго говоря, они больше не являются градиентами в математическом смысле)