我在RNN上关注this tutorial,其中在第177行执行了以下代码。为什么我们clip_by_global_norm在执行RNN时获得梯度
max_grad_norm = 10
....
grads, _ = tf.clip_by_global_norm(tf.gradients(cost, tvars), max_grad_norm)
optimizer = tf.train.GradientDescentOptimizer(self.lr)
self._train_op = optimizer.apply_gradients(zip(grads, tvars),
global_step=tf.contrib.framework.get_or_create_global_step())
为什么我们要做clip_by_global_norm
? max_grad_norm
的价值是如何决定的?
查找_exploding渐变problem_。 – Styrke