Если один захватывает градиент с помощью оптимизатора, будет ли он рассчитывать двойной градиент? - PullRequest
0 голосов
/ 15 апреля 2019

У меня недавно появилось небольшое узкое место в тренировках.Я всегда добавляю много гистограмм в резюме.Я хочу знать, будет ли вычисление градиентов сначала, а затем минимизация потерь рассчитывать вдвое больше градиентов.Упрощенный код:

# layers
...
# optimizer
loss = tf.losses.mean_squared_error(labels=y_true, predictions=logits)
opt = AdamOptimizer(learning_rate)
# collect gradients
gradients = opt.compute_gradients(loss)
# train operation
train_op = opt.minimize(loss)
...
# merge summary
...

Существует ли метод минимизации в оптимизаторах, которые используют непосредственно градиенты?Что-то вроде opt.minimize(gradients) вместо opt.minimize(loss)?

1 Ответ

1 голос
/ 15 апреля 2019

Вы можете использовать apply_gradients после вычисления градиентов с помощью compute_gradients следующим образом:

grads_and_vars = opt.compute_gradients(loss)
train_op = opt.apply_gradients(grads_and_vars)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...