具有随机梯度下降的剪切梯度

Clipping Gradient with stochastic gradient descent

我正在训练循环神经网络,但我想应用裁剪梯度。我正在使用 sgd。我可以将剪裁梯度用于为小批量计算的梯度总和吗?

剪切梯度的总和没有效果。您应该单独剪辑每个渐变。

以下是 Tensorflow 中梯度裁剪的快速代码片段:

max = 20
grads = tf.gradients(loss, tf.trainable_variables())
grads, _ = tf.clip_by_global_norm(grads, max)  # gradient clipping
grads_and_vars = list(zip(grads, tf.trainable_variables()))
optimizer = tf.train.AdamOptimizer(learning_rate)
train_op = optimizer.apply_gradients(grads_and_vars)