• 【tensorflow】】模型优化(一)指数衰减学习率


    指数衰减学习率是先使用较大的学习率来快速得到一个较优的解,然后随着迭代的继续,逐步减小学习率,使得模型在训练后期更加稳定。在训练神经网络时,需要设置学习率(learning rate)控制参数的更新速度,学习速率设置过小,会极大降低收敛速度,增加训练时间;学习率太大,可能导致参数在最优解两侧来回振荡。

    函数原型:


    tf.train.exponential_decay(
        learning_rate,
        global_step,
        decay_steps,
        decay_rate,
        staircase=False,#默认为False
        name=None
    )


    staircase:布尔值。如果True以不连续的间隔衰减学习速率,最后曲线就是锯齿状

    该函数返回衰退的学习速率。它被计算为:

    decayed_learning_rate = learning_rate *                        decay_rate ^ (global_step / decay_steps)
    指数衰减学习率的各种参数:

    # 初始学习率
    learning_rate = 0.1
    # 衰减系数
    decay_rate = 0.9
    # decay_steps控制衰减速度
    # 如果decay_steps大一些,(global_step / decay_steps)就会增长缓慢一些
    # 从而指数衰减学习率decayed_learning_rate就会衰减得慢一些
    # 否则学习率很快就会衰减为趋近于0
    decay_steps = 50
    # 迭代轮数
    global_steps = 3000
    此时的意思是学习率以基数0.9每50步进行衰减。例如当迭代次数从1到3000次时,迭代到最后一次时,3000/50=60. 则衰减到基数的60次方。
    是初始化的学习率, 是随着 的递增而衰减。显然,当 为初值0时, 有下面等式:

    用来控制衰减速度,如果 大一些, 就会增长缓慢一些。从而指数衰减学习率 就会衰减得慢一否则学习率很快就会衰减为趋近于0。

    徒手实现指数衰减学习率:

    import numpy as np
    import matplotlib.pyplot as plt
    plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
    plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
    X = []
    Y = []
    learning_rate=1
    global_steps=3000
    decay_steps=50
    decay_rate=0.9
    # 指数学习率衰减过程
    for global_step in range(global_steps):
    decayed_learning_rate = learning_rate * decay_rate**(global_step / decay_steps)
    X.append(global_step / decay_steps)
    Y.append(decayed_learning_rate)
    #print("global step: %d, learning rate: %f" % (global_step,decayed_learning_rate))
    plt.plot(X,Y,'b')
    plt.ylabel(u"learning_rate学习率")
    plt.xlabel('global_step / decay_steps')
    plt.show()


    ---------------------
    作者:亮亮兰
    来源:CSDN
    原文:https://blog.csdn.net/lyl771857509/article/details/79734107
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    find命令
    shell编程基础
    grep命令
    awk命令
    结对项目之需求分析与原型模型设计
    使用Git进行代码管理的心得
    软件工程的实践项目的自我目标
    第五次作业——团队项目——需求规格说明书
    调研android开发环境的发展演变
    结对编程总结
  • 原文地址:https://www.cnblogs.com/jfdwd/p/11242042.html
Copyright © 2020-2023  润新知