Tôi đang bối rối về sự khác biệt giữa apply_gradients
và minimize
của trình tối ưu hóa trong lưu lượng. Ví dụ,Sự khác biệt giữa `apply_gradients` và` minim` của trình tối ưu hóa trong tensorflow
optimizer = tf.train.AdamOptimizer(1e-3)
grads_and_vars = optimizer.compute_gradients(cnn.loss)
train_op = optimizer.apply_gradients(grads_and_vars, global_step=global_step)
và
optimizer = tf.train.AdamOptimizer(1e-3)
train_op = optimizer.minimize(cnn.loss, global_step=global_step)
Họ cùng thực sự?
Nếu tôi muốn phân hủy tốc độ học tập, tôi có thể sử dụng các mã sau không?
global_step = tf.Variable(0, name="global_step", trainable=False)
starter_learning_rate = 1e-3
learning_rate = tf.train.exponential_decay(starter_learning_rate, global_step,
100, FLAGS.decay_rate, staircase=True)
# Passing global_step to minimize() will increment it at each step.
learning_step = (
optimizer = tf.train.AdamOptimizer(learning_rate)
grads_and_vars = optimizer.compute_gradients(cnn.loss)
train_op = optimizer.apply_gradients(grads_and_vars, global_step=global_step)
)
Cảm ơn sự giúp đỡ của bạn!
Một liên kết trên các tài liệu mà điều này được giải thích tốt hơn là https://www.tensorflow.org/api_docs/python/tf/train/Optimizer. –