tensorflow learning schedule之分段常数衰减用法

本文介绍了在深度学习模型优化过程中,学习率的重要性及常见衰减方法,如分段常数衰减。通过使用`tf.train.piecewise_constant`函数,可以根据预设的边界和值在不同阶段设置不同的学习率,从而更好地控制模型的收敛过程。在示例代码中,展示了如何在TensorFlow中实现分段常数学习率衰减,并结合Adam优化器进行模型训练。
摘要由CSDN通过智能技术生成

学习率

在梯度下降法中,都是给定的统一的学习率,整个优化过程中都以确定的步长进行更新, 在迭代优化的前期中,学习率较大,则前进的步长就会较长,这时便能以较快的速度进行梯度下降,而在迭代优化的后期,逐步减小学习率的值,减小步长,这样将有助于算法的收敛,更容易接近最优解。故而如何对学习率的更新成为了研究者的关注点。
​ 在模型优化中,常用到的几种学习率衰减方法有:分段常数衰减、多项式衰减、指数衰减、自然指数衰减、余弦衰减、线性余弦衰减、噪声线性余弦衰减。
本文详细介绍分段常数衰减函数及其用法。
在这里插入图片描述

tf.train.piecewise_constant(x,boundaries,values,name)
指定间隔的分段常数.

参数:
	x:0-D标量Tensor.
	boundaries:边界,tensor或list.
	values:指定定义区间的值.
	name:操作的名称,默认为PiecewiseConstant.

分段常数衰减就是在定义好的区间上,分别设置不同的常数 值,作为学习率的初始值和后续衰减的取值.
具体用法,在此处只是截取我的代码一部分,仅用于说明分段常数衰减的用法。

# 指定学习率变化的轮数区间
boundaries=[300]
# 指定学习率变化值,注意,values要比boundaries多一个值
values=[1e-5,1e-6]
# 初始化global_step,并指明其为不可训练参数
global_step=tf.Variable(0,trainable=False)
# 学习率函数
learning_rate=tf.train.piecewise_constant(global_step, boundaries, values, name=None)
#优化器,注意加了global_step=global_step,用于同步变化
optimizer=tf.train.AdamOptimizer(learning_rate).minimize(model['loss'],global_step=global_step)

# 在运行时
_, step,loss,accuracy = sess.run([optimizer,global_step, 'loss'], 
						feed_dict={'x': input_data,'labels': labels})

你学废了吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值