在PyTorch中使用带有自调整优化器的调度器

2024-04-24 22:12:31 发布

您现在位置:Python中文网/ 问答频道 /正文

在PyTorch中,权重调整策略由优化器确定,学习速率由调度器调整。当优化器是SGD时,只有一个学习率,这很简单。当使用Adagrad、Adam或任何类似的优化器,在每个参数的基础上固有地调整学习率时,有什么特别需要注意的吗?由于算法调整其自身的学习速率,我是否可以完全忽略调度程序?我是否应该将其参数化为与使用SGD时非常不同的方式


Tags: 程序算法参数速率方式pytorch调度策略
1条回答
网友
1楼 · 发布于 2024-04-24 22:12:31

您为ADAM之类的优化器定义的学习率是上界。您可以在第2.1节的paper中看到这一点。本文中的步长α是学习率

The effective magnitude of the steps taken in parameter space at each are approximately bounded by the stepsize setting α

此外,直接使用该步长α并与学习的步长校正相乘。因此,改变学习率(例如降低学习率)将降低所有个人的学习率并降低上限。这有助于在培训“结束”期间减少总体步长,因此只会出现较小的步长,可能有助于网络在损失函数中找到最小值

我在一些使用ADAM的论文中看到学习率下降,我自己也使用了它,它确实有所帮助。我发现你应该比SGD做得慢。对于一个模型,我只是每10个时代乘以0.8。所以这是一个逐渐衰减的过程,我认为它比更剧烈的步骤更有效,因为你不会使估算的动量“失效”太多。但这只是我的理论

相关问题 更多 >