TensorFlow——decay设置
记一个关于TensorFlow的小笔记:
在神经网络训练中常常使用 Adam 优化器,
opt=tf.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.0, amsgrad=False)
其中 decay 参数是按照下面的数学表达式进行衰减学习率的:
l
r
=
l
r
×
1
1
+
d
e
c
a
y
×
e
p
o
c
h
lr=lr \times \frac{1}{1+decay \times epoch}
l
r
=
l
r
×
1
+
d
e
c
a
y
×
e
p
o
c
h
1
故如果我们想在经过 1000 个 epoch 之后,将学习率从1e-3 衰减到 1e-5,那么我们可以计算出应该设置 decay 为:
d
e
c
a
y
=
0.099
decay=0.099
d
e
c
a
y
=
0
.
0
9
9
opt=tf.optimizers.Adam(lr=1e-3,decay=0.099)
此时 学习率随 epoch 的变化如下所示:
可以看到在前面100 个周期左右 学习率从1e-3 降到了 1e-4,此后的学习率在 1e-4 到 1e-5 之间。