pytorch-学习率选择策略

1.stepLR:

这个调度器有2个重要的参数。第一个参数是步长,它表示学习率多少轮改变一次,第二个参数是gamma,它决定学习率必须改变多少。

scheduler = StepLR(optimizer,step_size = 30,gamma = 0.1)
for eroch in range(100):
    scheduler.step()
    train(...)
    validate(...)

2.MultiStepLR:

scheduler = MultiStepLR(optimizer,milestones=[30,80],gamma=0.1)
for eroch in range(100):
    scheduler.step()
    train(...)
    validate(...)

3. ExponentiaILR:

每一轮都将学习率乘上gamma值

4. ReduceLROnPlateau:

这是常用的学习率策略之一。应用本策略时,当特定的度量指标,如训练损失、验证损失或准确率不在变化时,学习率就会改变。通用实践是讲学习率的原始值降低为原来的1/2~1/10。

optimizer = torch.optim.SGD(model.parameters(),lr = 0.1,momentum=0.9)
scheduler = ReduceLROnPlateau(optimizer,'min')
for epoch in range(100):
    train(...)
    val_loss = validate(...)
    scheduler.step(val_loss)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。