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