zoukankan      html  css  js  c++  java
  • 炼丹技巧

    1. 无脑Adam

     它的默认初始学习率是0.001,但是发现设置为0.0002效果很好    注意记录loss的时候最好把cross-entropy和regularization的loss分来记录,同时对比,最好是刚开始时两个方面的loss都在下降,不要说一开始一直都是regularization loss在下降,分类loss不变,这样很容易rloss全变成0从而loss不下降了 

    ❤发现lr越小,cross-entropy loss下降得更快些, lr越大越容易让regularization loss降到0,之后就训练不了了【基于Adam】❤

    1 lr = tf.Variable(FLAGS.initial_lr, trainable=False, name="learning_rate")
    2 tf.summary.scalar("learning_rate",lr)
    3 training_op = tf.train.AdamOptimizer(lr).minimize(total_loss,global_step)

    2. lr 衰减

       之前都是用tf.train.piecewise_constant()   但是自己定义这个衰减距离不是很科学,那就用一个变量记住当前validation的最好结果,然后用一个count记录下validation的结果小于best的次数,如果这个次数大于某个阈值,就对learning_rate进行衰减操作,一般这个阈值设置为一个epoch的大小,也就是 count_to_patience = batches_per_epoch/validation_frequency       一个epoch有多少个batch /  隔多少个batch进行validation    例:1500/300 = 5

     1 best_validation_score = 0.0
     2 patience = 5
     3 count_to_patience = 0
     4 
     5 if step % 300 == 0:
     6     accuracy = validation()
     7     if accuracy > best_validation_score:
     8         best_validation_score = accuracy
     9     else:
    10         count_to_patience += 1
    11     if count_to_patience == patience:
    12         count_to_patience = 0
    13         lr /= 10

    3. batch_size

       对于我们穷人来说是尽量在卡上能多大就多大,之前有人不提倡说batch_size很大,但是我们的条件也大不到哪儿去,能用64就不要用32   论文中常用的是256一个batch

    4. weights 初始化方法

     都说 LSUV > He > Xavier > Guassian   没有用过LSUV【论文All you need is a good init 】,在tensorflow里使用He init或者说是MSRA init很方便,有现有函数,使用着挺好的【论文: Delve into ..... Kaiming He】

    1 with slim.arg_scope([slim.conv2d],
    2                     weights_initializer=slim.variance_scaling_initializer())    

    5. nvidia-smi  多卡情况下特别慢

    sudo nvidia-persistenced --persistence-mode    这个命令之后就会很快

    6. 一个具体调参例子  from: Karparthy

  • 相关阅读:
    GridView自定义分页
    intro
    ListView和DataPager初试
    在DataGrid中,如何录入数量及单价的时候自动算出金额
    常用正则表达式
    ASP.NET中基类页的设计和使用
    Asp.net实现无刷新检测用户名
    在asp.net2.0中使用存储过程
    .NET中的抽象工厂
    用C#生成随机中文汉字验证码的基本原理 [转]
  • 原文地址:https://www.cnblogs.com/lainey/p/8308821.html
Copyright © 2011-2022 走看看