Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x TensorFlow 2.0-学习速率调度器_Python 3.x_Deep Learning_Tensorflow2.0_Learning Rate - Fatal编程技术网

Python 3.x TensorFlow 2.0-学习速率调度器

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

我使用的是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

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”结合使用?或者,我应该为它提出一个新问题吗?谢谢@阿伦:事实上,评论中的后续问题并不是如何运作的;如果解决了您的问题,请接受答案(请参阅),并且您可以随时为任何其他问题提出新问题。