美文网首页
tensorflow 学习率控制

tensorflow 学习率控制

作者: snowpigppp | 来源:发表于2019-08-07 11:03 被阅读0次

    为什么调整学习率

    梯度下降中学习率不同导致的结果
    不同学习率对训练效果的影响

    学习率的调整

    1. 离散下降(discrete staircase)
      对于深度学习来说,每 tt 轮学习,学习率减半。对于监督学习来说,初始设置一个较大的学习率,然后随着迭代次数的增加,减小学习率。
    2. 指数减缓(exponential decay)
      对于深度学习来说,学习率按训练轮数增长指数差值递减。例如:
      a = 0.95^{epoch\_num} \cdot a_0
      又或者公式为:
      a = \frac{k}{\sqrt {epoch\_num}}
      其中epoch_num为当前epoch的迭代轮数。不过第二种方法会引入另一个超参 kk 。
    3. 分数减缓(1/t decay)
      对于深度学习来说,学习率按照公式
      a = \frac{a}{1+decay\_rate * epoch\_num}
      变化, decay_rate控制减缓幅度

    自己写的一个学习率下降的小demo

    if dice > 0.85: 
        global_step += 1
        lr = lr * 0.9999
        if lr <= 1e-6:
            print('learning rate is lower than 1e-6')
            break_flag = True 
            break
    elif dice <= 0.85:
        lr = 1e-3 
    

    用每个step * 0.9999的方式控制。70000个global step后lr才会降到1e-6.
    break_flag控制退出多个循环。

    相关文章

      网友评论

          本文标题:tensorflow 学习率控制

          本文链接:https://www.haomeiwen.com/subject/gqzndctx.html