我添加了一个回调来降低学习速度:
keras.callbacks.ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=100,
verbose=0, mode='auto',epsilon=0.00002, cooldown=20, min_lr=0)
这是我的张量板回调:
keras.callbacks.TensorBoard(log_dir='./graph/rank{}'.format(hvd.rank()), histogram_freq=10, batch_size=FLAGS.batch_size,
write_graph=True, write_grads=True, write_images=False)
我想确保它在我的培训期间开始生效,所以我想将学习率输出到tensorbaord。但是我找不到在哪里设置它。
我也检查了优化程序的api,但是没有运气。
keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.0, amsgrad=False)
那么,如何向tensorboad输出学习率?
最佳答案
According to the author of Keras,正确的方法是将TensorBoard
回调子类化:
from keras import backend as K
from keras.callbacks import TensorBoard
class LRTensorBoard(TensorBoard):
def __init__(self, log_dir, **kwargs): # add other arguments to __init__ if you need
super().__init__(log_dir=log_dir, **kwargs)
def on_epoch_end(self, epoch, logs=None):
logs = logs or {}
logs.update({'lr': K.eval(self.model.optimizer.lr)})
super().on_epoch_end(epoch, logs)
然后将其作为
callbacks
参数的一部分传递给model.fit
(贷方Finncent Price):model.fit(x=..., y=..., callbacks=[LRTensorBoard(log_dir="/tmp/tb_log")])
关于keras - Keras:如何将学习率输出到张量板上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49127214/