mindformers.core.LinearWithWarmUpLR =================================== .. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg :target: https://gitee.com/mindspore/mindformers/blob/dev/docs/api/api_python/core/mindformers.core.LinearWithWarmUpLR.rst :alt: 查看源文件 .. py:class:: mindformers.core.LinearWithWarmUpLR(learning_rate: float, total_steps: int, warmup_steps: int = None, warmup_lr_init: float = 0., warmup_ratio: float = None, **kwargs) 线性预热学习率。 该学习率使用线性预热策略来逐步增加每个参数组的学习率,并在预热阶段结束后按线性方式调整学习率。 在预热阶段,学习率从一个较小的初始值线性增加到基准学习率,公式如下: .. math:: \eta_t = \eta_{\text{warmup}} + t \times \frac{\eta_{\text{base}} - \eta_{\text{warmup}}}{\text{warmup_steps}} 其中, :math:`\eta_{\text{warmup}}` 是预热阶段的初始学习率, :math:`\eta_{\text{base}}` 是预热阶段结束后的基准学习率。 预热阶段结束后,学习率将按照以下线性调度公式进行调整: .. math:: \eta_t = \eta_{\text{base}} - t \times \frac{\eta_{\text{base}} - \eta_{\text{end}}}{\text{total_steps} - \text{warmup_steps}} 其中, :math:`\eta_{\text{end}}` 是训练结束时的最小学习率, :math:`\text{total_steps}` 是总的训练步数, :math:`\text{warmup_steps}` 是预热阶段的步数。 这种方法允许通过线性预热来平滑地增加学习率,然后在剩余的训练过程中逐步降低学习率,以提高训练的稳定性和效果。 参数: - **learning_rate** (float) - 学习率的初始值。 - **total_steps** (int) - 总步数。 - **warmup_steps** (int, 可选) - 预热步骤数。默认值: ``None`` 。 - **warmup_lr_init** (float, 可选) - 预热阶段的初始学习率。默认值: ``0.`` 。 - **warmup_ratio** (float, 可选) - 用于预热的总训练步数比例。默认值: ``None`` 。 输入: - **global_step** (int) - 全局步数。 输出: 学习率。