В тензорном потоке графики и train_ops запускаются в сеансе как вызов session.run (..). Однако, если мы сделаем вызов compute_gradients, а затем train_op как:
loss= ...
model_params = tf.trainable_variables()
compgrad_op = [optimizer.compute_gradients(loss, model_params)]
compgrad_op = tf.group(*compgrad_op)
gradvars = compgrad_op[0]
train_op = [optimizer.apply_gradients(gradvars, global_step=tf.train.get_global_step())]
train_op = tf.group(*train_op)
Теперь, если я вызвал session.run () для train_op и compgrad_op, например:
session.run(train_op,..)
session.run(compgrad_op,..)
Будет ли функция compute_gradients () вызываться только один раз, потому что session.run(train_op)
уже содержит этот вызов функции, так как график для вызова apply_gradients () зависит от вызова compute_gradients ()? Или функция compute_gradients () будет вызываться 2 раза в каждом сеансе session.run(train_op)
и session.run(compgrad_op)
?