当我使用 tensorflow 2.0 自定义训练循环时,是否有任何函数或方法可以显示学习率?
这是张量流指南的示例:
def train_step(images, labels):
with tf.GradientTape() as tape:
predictions = model(images)
loss = loss_object(labels, predictions)
gradients = tape.gradient(loss, model.trainable_variables)
optimizer.apply_gradients(zip(gradients, model.trainable_variables))
train_loss(loss)
train_accuracy(labels, predictions)
Run Code Online (Sandbox Code Playgroud)
模型训练时如何从优化器中检索当前学习率?
如果您能提供任何帮助,我将不胜感激。:)
我想看看培训期间的学习率如何变化(打印出来或创建摘要并在张量板上可视化)。
这是到目前为止的代码片段:
optimizer = tf.train.AdamOptimizer(1e-3)
grads_and_vars = optimizer.compute_gradients(loss)
train_op = optimizer.apply_gradients(grads_and_vars, global_step=global_step)
sess.run(tf.initialize_all_variables())
for i in range(0, 10000):
sess.run(train_op)
print sess.run(optimizer._lr_t)
Run Code Online (Sandbox Code Playgroud)
如果我运行代码,我会不断获得初始学习率(1e-3),即看不到任何变化。
如何获得每一步的学习率的正确方法是什么?
我想补充一点,这个问题确实与我的相似。但是,由于我没有足够的代表,因此无法在评论部分中发布我的发现。