keras
在keras中,比如动态调整学习率,可以:
1 |
|
lr_scheduler
在pytorch中,提供了torch.optim.lr_scheduler
1. StepLR
1 | # -*- coding: utf8 -*- |
2. MultiStepLR
1 |
|
这个可以设置区间,在30 ~ 80
为一个学习率
3. ExponentialLR
1 | scheduler = lr_scheduler.ExponentialLR(optimizer, gamma=0.9) |
指数衰减
transformers库
在transformers库中,也提供了一些,比如:
1. get_linear_schedule_with_warmup
学习率预热
1 | num_warmup_steps = 0.05 * len(train_dataloader) * epochs |
1 | optimizer = optim.Adam(params=model.parameters(), lr=1e-3) |
学习率先不断上升,然后再不断减小。
在预热期间,学习率从0线性增加到优化器中的初始lr。随后线性降低到0