Python 3.x TensorFlow 2.0-学习速率调度器
我使用的是Python 3.7和TensorFlow 2.0,我必须用以下学习率计划程序训练一个神经网络,用于160个时代:Python 3.x TensorFlow 2.0-学习速率调度器,python-3.x,deep-learning,tensorflow2.0,learning-rate,Python 3.x,Deep Learning,Tensorflow2.0,Learning Rate,我使用的是Python 3.7和TensorFlow 2.0,我必须用以下学习率计划程序训练一个神经网络,用于160个时代: def scheduler(epoch): if epoch < 80: return 0.01 elif epoch >= 80 and epoch < 120: return 0.01 / 10 elif epoch >= 120: return 0.01 / 100 c
def scheduler(epoch):
if epoch < 80:
return 0.01
elif epoch >= 80 and epoch < 120:
return 0.01 / 10
elif epoch >= 120:
return 0.01 / 100
callback = tf.keras.callbacks.LearningRateScheduler(scheduler)
model.fit(
x = data, y = labels,
epochs=100, callbacks=[callback],
validation_data=(val_data, val_labels))
在80和120个时期,将学习率降低10倍,其中初始学习率=0.01
如何编写函数以合并此学习率计划程序:
def scheduler(epoch):
if epoch < 80:
return 0.01
elif epoch >= 80 and epoch < 120:
return 0.01 / 10
elif epoch >= 120:
return 0.01 / 100
callback = tf.keras.callbacks.LearningRateScheduler(scheduler)
model.fit(
x = data, y = labels,
epochs=100, callbacks=[callback],
validation_data=(val_data, val_labels))
def调度程序(历元):
如果历元<80:
返回0.01
elif epoch>=80和epoch<120:
返回0.01/10
elif epoch>=120:
返回0.01/100
callback=tf.keras.callbacks.LearningRateScheduler(调度器)
模型拟合(
x=数据,y=标签,
epochs=100,callbacks=[callback],
验证_数据=(val_数据,val_标签))
这是正确的实现吗
谢谢 tf.keras.callbacks.LearningRate调度程序需要一个函数,该函数以历元索引作为输入(整数,从0开始索引),并返回一个新的学习速率作为输出(浮点):
这将使80和120个时代的学习率降低10倍,并与其他所有时代保持一致。如何使用“scheduler()”函数将学习率调度器与“GradientTape”结合使用?或者,我应该为它提出一个新问题吗?谢谢@阿伦:事实上,评论中的后续问题并不是如何运作的;如果解决了您的问题,请接受答案(请参阅),并且您可以随时为任何其他问题提出新问题。