get_cosine_schedule_with_warmup¶
- torchtune.training.get_cosine_schedule_with_warmup(optimizer: Optimizer, num_warmup_steps: int, num_training_steps: int, num_cycles: float = 0.5, last_epoch: int = - 1) LambdaLR [source]¶
创建一个学习率计划,该计划在
num_warmup_steps
步内将学习率从 0.0 线性增加到 lr,然后在剩余的num_training_steps-num_warmup_steps
步内按照余弦计划降至 0.0(假设num_cycles
= 0.5)。这基于 Hugging Face 实现 https://github.com/huggingface/transformers/blob/v4.23.1/src/transformers/optimization.py#L104。
- 参数:
optimizer (torch.optim.Optimizer) – 要为其安排学习率的优化器。
num_warmup_steps (int) – 预热阶段的步数。
num_training_steps (int) – 训练步骤总数。
num_cycles (float) – 余弦计划中的波浪数。默认为 0.5(从最大值降至 0,遵循半余弦)。
last_epoch (int) – 恢复训练时最后一个 epoch 的索引。默认为 -1
- 返回:
具有适当计划的 torch.optim.lr_scheduler.LambdaLR。