我正在训练一个递归神经网络,但我想应用剪裁梯度。我在用sgd。我能用剪裁梯度来计算小型批次的梯度和吗?
发布于 2018-07-03 09:42:09
裁剪梯度之和没有任何影响。相反,您应该分别裁剪每个渐变。
下面是用于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)https://stackoverflow.com/questions/51135643
复制相似问题