Yan*_*ang 3 optimization pytorch learning-rate
我正在尝试重新实现一篇论文,其中建议调整学习率如下:
在0.0001的变化值上,学习率降低了回归值的一个因子,耐心时期 10 。
我应该使用torch.optim.lr_scheduler.ReduceLROnPlateau()?
我不确定应该将什么值传递给每个参数。
语句中的变化值是否表示参数阈值?
是的因素在声明中表示的参数的因素?
小智 8
torch.optim.lr_scheduler.ReduceLROnPlateau确实是你要找的。我为你总结了所有重要的东西。
mode=min: 当监测到的数量停止减少时,lr 将减少
factor: 学习率将降低的因素
patience: 没有改进的时期数,之后学习率将降低
threshold:衡量新最优值的阈值,只关注显着变化(变化值)。假设我们有threshold=0.0001,如果第n 个时期的损失为 18.0,而第n+1 个时期的损失为 17.9999,那么我们就满足了将当前学习率乘以 的标准factor。
criterion = torch.nn.MSELoss()
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)
scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='min',
factor=0.1, patience=10, threshold=0.0001, threshold_mode='abs')
for epoch in range(20):
# training loop stuff
loss = criterion(...)
scheduler.step(loss)
Run Code Online (Sandbox Code Playgroud)
您可以在文档中查看更多详细信息:https : //pytorch.org/docs/stable/optim.html#torch.optim.lr_scheduler.ReduceLROnPlateau
| 归档时间: |
|
| 查看次数: |
4132 次 |
| 最近记录: |