尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

batch size 变大时,学习率的变化经验

batch size 变大时,学习率的变化经验 一般规律是batch size 变大时学习率通常可以适当变大但不一定必须线性放大。实际要看模型、优化器、数据量和显存稳定性。常见经验如下。1. 线性缩放规则如果 batch size 放大k倍学习率也放大k倍batch_size: 32 - 128 放大 4 倍 lr: 0.0003 - 0.0012这是经典经验但对你的任务不一定稳。0.0012对 Transformer AdamW 可能偏大容易震荡或验证集下降。2. 平方根缩放规则更稳batch size 放大k倍学习率放大sqrt(k)倍32 - 128k 4 sqrt(4) 2 lr: 0.0003 - 0.0006这个更保守通常比线性缩放稳。3. AdamW 下建议别太激进你现在用的是 AdamWlearning_rate:0.0003weight_decay:0.01对于 AdamW我建议优先试batch_size:128learning_rate:0.0003如果收敛慢再试learning_rate:0.0005或learning_rate:0.0006不建议第一轮直接上0.0012。4. weight_decay 的变化batch size 变大后模型泛化有时会变差可以适当加正则weight_decay:0.01-0.02但不要和学习率一起大幅改否则不好判断是哪一个参数起作用。推荐顺序第一轮batch_size128, lr0.0003, weight_decay0.01 第二轮batch_size128, lr0.0006, weight_decay0.01 第三轮batch_size128, lr0.0006, weight_decay0.025. epoch 是否要变batch size 变大后每个 epoch 的更新步数变少。例如训练样本 90000 batch32: 每轮约 2813 step batch128: 每轮约 704 step也就是说同样 50 个 epochbatch128的参数更新次数只有原来的 1/4。所以如果你想让“更新次数”接近可以增加 epochnum_epochs:50-100 或 150但论文实验为了公平通常可以先固定 epoch比较实际效果如果追求最优性能可以增加 epoch 或使用学习率调度。6. dropout 一般不跟 batch size 直接绑定batch size 改变不一定要改 dropout。只有当你发现过拟合更严重比如train_top1 很高 val_top1 不涨或下降再考虑dropout:0.1-0.2对你当前项目的推荐从32 - 128我建议按这个顺序做# 实验 A只改 batchbatch_size:128learning_rate:0.0003weight_decay:0.01num_epochs:50# 实验 B平方根放大学习率batch_size:128learning_rate:0.0006weight_decay:0.01num_epochs:50# 实验 C加强正则batch_size:128learning_rate:0.0006weight_decay:0.02num_epochs:50优先不要同时改太多参数。每次只改一个或两个这样你后面写论文实验分析才有依据。
返回列表