torch.optim.lr_scheduler提供了几种根据epoch调整学习率的方法。
torch.optim.lr_scheduler.ReduceLROnPlateau使得可以根据 validation的值动态的减小学习率的值。
减小学习率也就是scheduler.step()应该在参数更新之后
注意:
在PyTorch 1.1.0版本以前,scheduler.step()应该在参数更新之前。那么在1.1.0版本之后,如果还是在参数更新之前减小了学习率就使得,学习率的初始值将被跳过。
示例:
>>> scheduler = ...
>>> for epoch in range(100):
>>> train(...)
>>> validate(...)
>>> scheduler.step()
为了分类明确,如果不明白 scheduler = …中是什么东西,请看这个内容(https://blog.csdn.net/yrwang_xd/article/details/106445541),里面有详细介绍。