000012资金流向,坐月子吃什么好,恶魔的契约女佣
导语Darknet是一个对照小众的开源深度学习框架,与眼前主流的深度学习框架分歧的是,该框架由C语言实现,对于新手来说有肯定的学习难度。然则即便这样,也挡不住我们使用该框架的热情(也可能是必不得已),因为台甫鼎鼎的目标检测算法YOLO(从v1~v4)便是基于该框架实现的。
学习率是训练深度学习模型时设置的一个关键的超参数,其值直接决意了训练的模型是否收敛、收敛的快慢水平:如果学习率设置得过大,则可能导致模型无法收敛;设置得过小则会导致模型收敛得很慢,从而使得训练时间过长。下图形象地阐明了学习率对模型训练过程的影响:图1学习率过大,导致模型无法收敛;图2学习率过小,导致训练耗时较长;图3先设置了一个合适的学习率,然后在训练过程中还会适当地削减学习率,使得模型能够很好地收敛到全局最长处。
图片本原于收集
学习率是训练模型之前就设置好的一个超参数,在训练过程中还会基于肯定的策略进行调整。
Darknet中的几种学习率调整策略
在Darknet中,神经收集的模型布局和训练时必要的一些超参数都是在一个`.cfg`文件中指定。学习率的调整策略则是在`.cfg`文件中通过`policy=`进行设置,在框架的代码中,则是由`parser.c`的`get_policy()`函数对`.cfg`文件中设定的调整策略字符串进行解析以确定本次训练所采用的学习率调整策略。`Darknet`框架支持的几种学习率调整策略界说在一个名为`learning_rate_policy`的枚举类型中,此中每个成员代表的调整策略的具体寄义注释如下:
CONSTANT: 恒定的学习率,学习率初始值在`.cfg`文件设置好后,训练过程中不会再做调整。RANDOM: 也是恒定的学习率,但其值由下面的公式决意此中,为初始学习率;为`0~1`之间的随机数;`power`是由`.cfg`文件中的`power=`设置的参数。POLY:训练过程中学习率调整方式由下面公式决意此中,为初始学习率;`batch_num`为当前的迭代次数;`max_batches`为最大的迭代次数,该参数由`.cfg`文件中的`max_batches=`指定;`power`是由`.cfg`文件中的`power=`设置的参数。其时,训练过程中学习率的调整过程曲线如下图所示: STEP: 训练过程中学习率调整方式由下面公式决意此中,为初始学习率;`batch_num`为当前的迭代次数;`scale`是由`.cfg`文件中的`scale=`设置的参数;`step`是由`.cfg`文件中的`step=`设置的参数。其时,训练过程中学习率的调整过程曲线如下图所示: EXP: 训练过程中学习率调整方式由下面公式决意此中,为初始学习率;`batch_num`为当前的迭代次数;是由`.cfg`文件中的`gamma=`设置的参数。其时,训练过程中学习率的调整过程曲线如下图所示: SIG:训练过程中学习率调整方式由下面公式决意
此中,为初始学习率;`batch_num`为当前的迭代次数;是由`.cfg`文件中的`gamma=`设置的参数;`step`是由`.cfg`文件中的`step=`设置的参数。其时,训练过程中学习率的调整过程曲线如下图所示:
STEPS: 一种阶段性调整策略,能够设置多个阶段,当前迭代次数到达设定值时,学习率调整为
本文地址:http://www.wbwb.net/bianchengyuyan/209348.html 转载请注明出处!