深度学习——查找学习率

我们在训练神经网络模型时,能修改最多的超参数就是学习率,但是大部分方法都只是提议使用一个相当小的数,让自己试验不同的值。因此,很多人都是以这种方式来为他们的架构发现最优学习率,通常会采用一种称为网格搜索(grid search)的技术,就是穷尽搜索一个学习率值的子集,将结果与一个验证数据集比较。这会浪费大量的时间。
这里提出一个更为简洁、快速的方法,以便我们找到合适的学习率这种方法是:在一个epoch期间,首先从一个小的学习率开始,每一个小批次增加到一个更大的学习率,直到这个epoch结束时得到一个很大的学习率。计算每一个学习率的相应损失,然后查看一个图,选出使损失下降最大的学习率。
更为细致的内容参看:Lesile Smith的“Cyclical Learning Rates for Trainng Neural Networks”
我们需要做的是,迭代各个批次,基本上照常训练,将输入传入模型,然后得到这个批次的损失。记录目前位置的best_loss,将新损失值与它比较。如果新的损失大于best_loss的4倍,就退出函数,返回目前得到的结果的对数,再在下一步更新学习率,直到循环结束时达到最大学习率。然后使用matplot画图:

logs,loss=find_lr()
plt.plot(logs,losses)
found_lr=1e-2

这里我们只返回了学习率对数和损失的片段。这样做只是因为开始和最后的几个训练往往不会告诉我们太多信息(特别是如果学习率很快变得非常大的情况下)。
:文章选自《基于PyTorch的深度学习》Ian Pointer著

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毛毛真nice

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值