学习率(Learning Rate)确定方法详解

学习率(Learning Rate)确定方法详解


一、学习率核心作用与问题

问题 现象 解决方法
学习率过大 损失剧烈震荡或爆炸性增长 降低学习率(如从1e-3→1e-4)
学习率过小 损失下降缓慢甚至停滞 增大学习率(如从1e-5→1e-3)
学习率不匹配优化器 某些优化器需特定范围(如Adam) 参考优化器推荐值

二、基础确定方法

1. 经验初始值法
  • 常用基准值(需根据任务调整):
    # 不同优化器的典型初始学习率
    optimizer = {
         
        "SGD": 0.01,       # 适用于简单任务
        "Adam": 0.001,     # 大多数任务的默认选择
        "RMSprop": 0.0001  # 适用于RNN/时序数据
    }
    
2. 网格搜索(Grid Search)
  • 在小范围内测试多个候选值(如 [1e-5, 1e-4, 1e-3]),选择损失下降最快的值。
  • 代码示例
    for lr in [1e-5, 3e-5, 1e-4, 3e-4, 1e-3]:
        optimizer = torch.optim.Adam(model.parameters(), lr=lr)
        # 训练并记录验证集损失
    

三、高级动态调整策略

1. 学习率范围测试(LR Range Test)
  • 方法:从极小值(如 1e-7)逐步增大学习率,观察损失变化曲线,选择损失下降最快的区域。
  • PyTorch实现(需安装 torch-lr-finder):
    from torch_lr_finder import LRFinder
    
    criterion = nn.CrossEntropyLoss()
    optimizer = optim.Adam(model.parameters(), lr=1e-7)
    lr_finder = LRFinder(model, optimizer, criterion, device="cuda")
    lr_finder.range_test(train_loader, end_lr=10, num_iter=100
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值