gpt4 book ai didi

python - Keras/Tensorflow 中不同时期的训练率如何变化

转载 作者:太空宇宙 更新时间:2023-11-03 13:58:49 24 4
gpt4 key购买 nike

当使用自适应优化器(Adam 等)之一时,我们期望在 epoch 内的训练期间改变连续小批量的学习率。但我想知道学习率在连续的纪元之间会如何变化——它是从前一个纪元(预期行为)继续还是从默认值初始化?

当然,术语“速率”是指特定优化器用来确定实际权重更新的所有变量(梯度)

如果我运行 N 个时期的训练,停止然后继续,那么速率会发生什么变化:

model.fit(data1_train_x,data1_train_y, \

initial_epoch=0, \
epochs=20, \

validation_split=0.1,\
batch_size=64, \
callbacks=[tensorboard])

model.fit(data2_train_x,data2_train_y, \

initial_epoch=20, \
epochs=40, \

validation_split=0.1,\
batch_size=64, \
callbacks=[tensorboard])

我想我会创建回调来记录每个时期之后的速率并绘制它,但在我这样做之前,可能有人已经有了答案。

最佳答案

摘要

费率更改不会重置;在这两种情况下,它们都可以顺利地跨越时代。

详情

任何表现良好的学习率衰减函数都取决于训练的长度,从迭代 0 开始。

注意:你可以编写自己的衰减函数;你可以随心所欲地让它变得疯狂。其中一个改变是

alpha = iteration_number

在你喝完咖啡回来之前,这会发生变化。

某些函数仅依赖于当前状态和修饰符,例如

if iteration_number % 5000 == 0:
alpha *= 0.9

另一个由半指数衰减组成,具体取决于剩余迭代的数量。

无论如何,这些不会在每个纪元开始时重置。如果您愿意,您可以编写一个来重置,但我不推荐这样做。

您的两阶段示例也不异常(exception),因为您已正确编码:第二个训练段从前一个训练段结束的地方开始。这里的关键线索是 initial_epoch 参数:您告诉拟合函数从哪里开始学习速率,而不是重置到零时间。

关于python - Keras/Tensorflow 中不同时期的训练率如何变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49409448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com