目前 lr 支持schedule方式, 如piecewise_decay等,是将 lr 定义为variable然后传到optimizer op的inputs中。
但是其他一些超参,如momentum, L2Decay系数等,能否做到schedule?
目前paddle静态图实现是将momentum, L2Decay.coeff作为Op的Attr,这样就不能将其定义为variable了。那有什么其他方式在静态图中实现 momentum, l2 coeff的schedule吗?
如果目前无法实现,后面会支持吗?
另外,动态图能够支持这个功能吗?
关于为何要做momentum的schedule,可以参考 fastai的官方文档 OneCycleScheduler部分,以及相关 论文
4条答案
按热度按时间camsedfj1#
@yiicy
zbsbpyhn2#
@yiicy 请问这个问题有进展吗?
nkcskrwz3#
目前静态图可以实现Op的Attr的更改,以更改adam的beta1参数举例,具体步骤:
但需注意的是,目前静态图无法支持在运行过程中动态更改attr参数,支持此功能影响面较大,需要研究讨论。
qrjkbowd4#
@MrChengmo 感谢回答!目前做到batch级别的调整就够用了。
这里还剩一个问题: 对于L2Decay的schedule,貌似不能简单通过op.type=='scale'来得到,因为collective op里面也用到了,如下
所以必须要通过 op.attr('op_namescope') 里是不是含有 'regularization'来判断吧?