optimization - Pytorch 调度学习率

标签 optimization pytorch learning-rate

我正在尝试重新实现一篇论文,其中建议调整学习率如下:

The learning rate is decreased by a factor of the regression value with patience epochs 10 on the change value of 0.0001.


我应该使用 torch.optim.lr_scheduler.ReduceLROnPlateau() ?
我不确定应该将什么值传递给每个参数。
  • 更改值 在语句中表示参数阈值 ?
  • 是语句中的因子表示参数系数 ?
  • 最佳答案

    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)
    
    您可以在文档中查看更多详细信息:https://pytorch.org/docs/stable/optim.html#torch.optim.lr_scheduler.ReduceLROnPlateau

    关于optimization - Pytorch 调度学习率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63108131/

    相关文章:

    c++ - 将可选参数传递给方法而不是计算它的成本

    javascript - 代码优化: style display

    python - pytorch 耗尽 GPU 内存

    python - tf.Keras 学习率计划——传递给优化器还是回调?

    python - 我可以在 PyTorch 中指定内核权重特定学习率吗?

    optimization - 寻找一种有效的结构来检查哪些圆圈包含一个点

    javascript - 最有效的数据存储方式

    deep-learning - 什么是多标签二分类?

    python - 在 Python 中查找数组中列表的元素(Numpy、Pytorch)

    python - 使用ReduceLROnPlateau时获取当前学习率