Отсечение градиента со стохастическим градиентным спуском

Я тренирую повторяющуюся нейронную сеть, но хочу применить градиент отсечения. Я использую sgd. Могу ли я использовать градиент отсечения для суммы градиентов, вычисленных для мини-пакета?


person erre4    schedule 02.07.2018    source источник


Ответы (1)


Отсечение суммы градиентов не имеет никакого эффекта. Вместо этого вы должны обрезать каждый градиент индивидуально.

Вот небольшой фрагмент кода для отсечения градиента в 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)
person Olivier Dehaene    schedule 03.07.2018