关于炼丹

嘎吱嘎吱脆 / 2023-08-18 / 原文

lr_scheduler的选择

学习率在训练过程起到很重要的作用,这段时间里最常用的两个:

  • 循环学习率调度器
    循环学习率调度器主要基于一个基本的观点:将训练过程中的学习率从较低的初始值逐渐增加,然后再逐渐减小到较小的终止值。这个过程有助于模型更快地收敛,并且可以降低模型过拟合的风险。同时,通过在训练过程中循环地逐渐调整学习率,可以避免在过多迭代中学习率过小或者过大。
torch.optim.lr_scheduler.OneCycleLR(optimizer, max_lr=, steps_per_epoch=, epochs=)
  • 指数衰减学习率调度器
    指数衰减学习率调度器的工作方式很简单:在每个训练迭代中,它会根据一个事先指定的指数衰减率,对当前学习率进行乘法衰减。
torch.optim.lr_scheduler.ExponentialLR(optimizer, gamma=0.88, last_epoch=-1)

个人感觉:循环学习率调度器在训练收敛的过程更稳定一些