【问题标题】:Setting a minimum learning rate on "Reduce On Plateau"在“Reduce On Plateau”上设置最小学习率
【发布时间】:2021-05-30 04:49:50
【问题描述】:

我目前正在使用 PyTorch 的 ReduceLROnPlateau 学习率调度器,使用:

learning_rate = 1e-3
optimizer = optim.Adam(model.params, lr = learning_rate)
model.optimizer = optimizer
scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(model.optimizer, factor=0.9, patience = 5000, verbose=True)

我的问题是损失会在几分钟内变得非常低,然后跳得非常高并开始稳步下降。因此,ReduceLROnPlateau 只会将学习率不断降低到模型无法学习任何东西的程度(因为它考虑了最低损失)。

有没有办法使用此调度程序设置最小学习率,使其不会接近 0?说至少设置为1e8

【问题讨论】:

    标签: python pytorch


    【解决方案1】:

    是的,来自documentation

    min_lr (float or list) – 标量或标量列表。所有参数组或每个组的学习率的下限。默认值:0

    你可以直接去:

    scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(
        model.optimizer,
        factor=0.9,
        patience=5000,
        verbose=True,
        min_lr=1e-8,
    )
    

    【讨论】:

    • 太棒了!不知道我怎么错过了那个。谢谢
    猜你喜欢
    • 2021-07-06
    • 2020-10-22
    • 2017-08-09
    • 2021-08-27
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多