您的位置:首页 > 手游攻略 > pytorch-gradual-warmup-lr:实践指南

pytorch-gradual-warmup-lr:实践指南

作者:互联网  时间: 2026-09-11 15:00:02  

真正理解pytorch-gradual-warmup-lr,要从它处理的任务开始:PyTorch 的逐渐预热学习率调度程序。对日常自动化任务来说,输入边界、依赖和失败处理如果不清楚就很难稳定复用往往决定它能否落地,不能只用安装成功来判断。先用一项范围明确的真实任务完成最小试跑更稳妥;过程中要观察配置时间、输出质量、异常信息和维护痕迹,失败也应能解释原因。对愿意先做小范围验证并复查原始文档的团队来说,这个仓库值得继续验证;只求即装即用的人则要先看维护成本。

pytorch-渐进式预热-lr

逐渐预热(增加)pytorch 优化器的学习率。在“准确的大型小批量 SGD:1 小时内训练 ImageNet”中提出。

示例:逐渐预热 100 epoch,之后使用余弦退火。

安装

$ pip install git+https://github.com/ildoonet/pytorch-gradual-warmup-lr.git

用途

请参阅 run.py 文件。

import torch
from torch.optim.lr_scheduler import StepLR, ExponentialLR
from torch.optim.sgd import SGD

from warmup_scheduler import GradualWarmupScheduler

if __name__ == '__main__':
    model = [torch.nn.Parameter(torch.randn(2, 2, requires_grad=True))]
    optim = SGD(model, 0.1)

    # scheduler_warmup is chained with schduler_steplr
    scheduler_steplr = StepLR(optim, step_size=10, gamma=0.1)
    scheduler_warmup = GradualWarmupScheduler(optim, multiplier=1, total_epoch=5, after_scheduler=scheduler_steplr)

    # this zero gradient update is needed to avoid a warning message, issue #8.
    optim.zero_grad()
    optim.step()

    for epoch in range(1, 20):
        scheduler_warmup.step(epoch)
        print(epoch, optim.param_groups[0]['lr'])

        optim.step()    # backward pass (update network)

最新游戏

更多

Copyright©2010-2019. All rights reserved | 波波三国游戏官网|[email protected]

备案编号:湘ICP备2022015115号-4