zoukankan      html  css  js  c++  java
  • 网络优化改进

    网络优化改进

    网络优化的方法有很多,在这里我们使用其中一种优化方式。在我们的模型训练时候,会有一个重要的因素需要设定,就是学习率。那么在手动设定学习率的时候不一定准确。 这种人为的设定对于模型的输出影响较大。所以在这里引入了一种自动更新学习率的函数。

    指数衰减学习率exponential_decay

    class tf.train.exponential_decay(learning_rate, global_step, decay_steps, decay_rate, staircase=False, name=None)
      """
      实现学习率指数衰减
    
      :param learning_rate:初始的学习率
    
      :param global_step:全局的训练步数(样本学习了多少次)
    
      :param decay_steps:衰减系数(每多少步衰减decay_rate)
    
      :param decay_rate:衰减的速度
    
      :param staircase:默认为False,如果设置为True时,将(global_step / decay_ steps)转换成整数
      """

    那么衰减的公式为learningrate * decay_rate ^ (global_step / decay steps)

    使用

    # 让学习率根据步伐,自动变换学习率,指定了每10步衰减基数为0.99,0.001为初始的学习率
    lr = tf.train.exponential_decay(0.001,
                                    global_step,
                                    10,
                                    0.99,
                                    staircase=True)
    
    # 优化器
    train_op = tf.train.GradientDescentOptimizer(lr).minimize(loss, global_step=global_step)

     

  • 相关阅读:
    flex布局
    媒体查询
    transform详细解释
    读取long类型数据
    Oracle中快速清空当前用户的所有表数据
    没有表头的csv文件怎么导入Kettle
    Kettle性能调优汇总
    oralce中特殊字符的查询
    数据的单值、多值、派生、简单、复合属性
    kettle学习
  • 原文地址:https://www.cnblogs.com/alexzhang92/p/10069565.html
Copyright © 2011-2022 走看看