TensorFlow ——Warm Up学习策略
-Learning rate decay 是深度学习训练过程中常用的手段之一。随训练的进展减小学习率可以定位到loss更深但是更窄的部分。
learning_rate_base = 0.001
learning_decay_steps = 10000
learning_decay_rate = 0.95
learning_rate = tf.train.exponential_decay(learning_rate_base, global_step, learning_decay_steps, learning_decay_rate, staircase=True)
- Warmup预热学习率的方式
先用最初的小学习率训练,然后每个step增大一点点,直到达到最初设置的比较大的学习率时,此时预热学习率完成,然后采用最初设置的学习率进行训练,预热学习率完成后的训练过程,学习率是衰减的,有助于使模型收敛速度变快,效果更佳。
warmup_steps = 10000
warmup_lr = (learning_rate_base * tf.cast(global_step, tf.float32) / tf.cast(warmup_steps, tf.float32))
learning_rate = tf.cond(global_step < warmup_steps, lambda: warmup_lr, lambda: lr)