在深度学习(CNNs, ViTs等)的训练中, 学习率的选择至关重要, 选择一个好的学习率, 可以极大的体现模型的性能.
Large LR | Small LR | |
学习速率 | 快 | 慢 |
一般使用的时间段 | 刚开始训练时 | 经过一定的epoches后(或者后期) |
缺陷 | a. 容易震荡 b. 容易损失值爆炸 | a. 容易过拟合 b. 收敛速度过慢 |
在训练过程中,一般根据epoches设置动态的LR
- 刚开始训练,学习率以0.01-0.0001.
- 一定的轮数以后,逐渐减少lr
- 接近训练完成时,学习率应该衰减在100倍以上.
对于迁移学习而言,由于模型已经在原来的数据集上收敛,所以需要设置学习率<=0.0001.
在pytorch中, torch.optim.lr_scheduler基于训练的epoches的数量来调整LR的方法.对于获取动态学习率, lr_scheduler值得推荐.
一般lr_scheduler应该在optimizer更新以后被运行,例如:
model = [Parameter(torch.randn(2, 2, requires_grad=True))]
optimi
上一篇:leetcode刷题—回文链表