mindformers.core.LearningRateWiseLayer
- class mindformers.core.LearningRateWiseLayer(base_lr, lr_scale)[源代码]
学习率分层模块。
这种方法允许每层根据其特定需求调整学习率,从而实现更高效和有效的训练。每层的学习率由基准学习率与该层特定的缩放因子调节决定。
最初,每层的学习率基于线性缩放策略设定:
其中
是时间 时层 的学习率, 是基准学习率, 是层 的缩放因子。随着训练的进行,每层的学习率按照以下余弦退火调度进行调整:
其中
是自学习率上次重置以来完成的epoch数量, 是下一次重置前的总epoch数。 代表训练结束时的最小学习率。- 参数:
base_lr (
mindspore.nn.learning_rate_schedule.LearningRateSchedule
) - 基准学习率调度器。lr_scale (float) - 学习率缩放值。
- 输入:
global_step (int) - 全局步数。
- 输出:
学习率。
样例:
>>> import mindspore as ms >>> from mindformers.core import LinearWithWarmUpLR >>> from mindformers.core import LearningRateWiseLayer >>> >>> ms.set_context(mode=ms.GRAPH_MODE) >>> total_steps = 20 >>> warmup_steps = 10 >>> learning_rate = 0.005 >>> >>> linear_warmup = LinearWithWarmUpLR(learning_rate=learning_rate, ... warmup_steps=warmup_steps, ... total_steps=total_steps) >>> learning_rate_wise_layer = LearningRateWiseLayer(linear_warmup, 0.5) >>> print(learning_rate_wise_layer(1)) 0.00025 >>> print(learning_rate_wise_layer(15)) 0.00125