ludwig 在路德维希的一周期政策

hsvhsicv  于 2个月前  发布在  其他
关注(0)|答案(7)|浏览(39)

你好@w4nderlust,

有没有计划在学习率调度器中实现史密斯的一周期政策?( https://arxiv.org/pdf/1803.09820.pdf )
我看到目前默认的策略是退火学习率(或批量大小)。自从一周期调度器被引入以来,它已经显示出了非常好的结果,而且似乎比其他调度器更快地收敛。

jtw3ybtb

jtw3ybtb1#

为什么不尝试提交一个PR呢? :)所有相关的代码都在train函数中:https://github.com/uber/ludwig/blob/master/ludwig/models/model.py#L267

f0ofjuux

f0ofjuux2#

很遗憾,我对TensorFlow并不熟悉。
此外,在PyTorch中已经实现了(https://pytorch.org/docs/stable/optim.html#torch.optim.lr_scheduler.OneCycleLR),但在TensorFlow中我不知道从哪里开始,我找不到等效的实现。

sh7euo9m

sh7euo9m3#

@w4nderlust 我很乐意参与这个项目,如果没有人的话。

blmhpbnm

blmhpbnm4#

@lordeddard,那太好了。首先,我建议你查看model.py中的训练功能。你可以访问这个链接:https://github.com/uber/ludwig/blob/master/ludwig/models/model.py#L293 ,看看那里是如何处理学习率的。一旦弄清楚了这一点,我们就可以讨论如何实现一周期政策。

bkkx9g8r

bkkx9g8r5#

你好,@w4nderlust ,上周有点忙。是的,我会看一下那个,并多读一些关于一个周期政策的内容,讨论一下实施情况。谢谢!

unhi4e5o

unhi4e5o6#

你好,w4nderlust。我已经查看了model.py中的train函数。在这个行中计算了每个批次/步骤的学习率。实际的学习率值将从这里开始。我假设我们在同一个文件中添加了代码来计算学习率。

xoshrz7s

xoshrz7s7#

假设在模型的train()函数中有一个名为one_cycle_policy的训练配置参数,我想象它看起来像这样:

$x_{1a0b1}x$

相关问题