caffe中的学习率的衰减机制
根据 caffe/src/caffe/proto/caffe.proto 里的文件,可以看到它有以下几种学习率的衰减速机制:
1. fixed: 在训练过程中,学习率不变;
2. step: 它的学习率的变化就像台价一样;step by step 的; 其中的 gamma 与 stepsize需要设置的;
学习率=base lr * gamma^(iter num / step)
3.exp :表示指数型的,其中参数 gamma 需要设置;
学习率=base_lr*gamma^iter
4. inv : 其中参数 gamma 与 power 都需要设置;
学习率 = base_lr*(1+gamma*iter)^(-power)
5.multistep: 可以设置多个 stepvalue的值, 在prototxt里面也没有具体介绍, 它由参数 stepsize 与 stepvalue 决定; 它不是每时第刻都去计算 学习率,而是达到我们设定的stepvalue的时候,才去计算(根据方法2中的公式),然后更新学习率; stepvalue 可以设置多个的,下面是 stepvalue的定义;
183 repeated int32 stepvalue = 34;
6.poly :多项式衰减 ,当到达最大次数时, 学习率变为了0;
lr = base_lr * (1 - iter/maxiter )^power
7.sigmoid形的:
lr = base_lr * (1 / (1+e^(-gamma*(iter-stepsize)) ))
。;
如果这篇文章帮助到了你,你可以请作者喝一杯咖啡