TensorFlow and deep learning,without a PHD 第8章 中文

实验:学习速率衰减

通过两个中间层、三个中间层或四个中间层,如果将迭代次数设为5000次或更高,那么可以获得接近98%的精度。

但你会发现结果不是很稳定。

这些曲线上下波动,测试集上的准确度上下波动,波动幅度约为百分之一。

这意味着即使学习率为0.003,我们也走得太快了。

但是,我们不能仅仅把学习率除以十,否则训练过程就变得无比漫长。

一个可行的解决方案是:

快速启动,并将学习速率渐渐指数衰减(例如衰减到0.0001)。

这一小小的改动带来的影响是惊人的。

你看,大部分的噪声消失了,测试集的精度现在以比较平稳的方式维持在98%以上。

顺便看看训练精度曲线。

现在它在几个阶段内都能达到100%(一个阶段=500次迭代=在所有训练图像上训练一次)。

我们第一次完美地学习到如何识别训练图像。

请将 学习速率衰减 添加到代码中。

在您的模型中,使用以下公式代替之前在 AdamOptimizer 中使用的固定学习率:

lr = 0.0001 + tf.train.exponential_decay(0.003, step, 2000, 1/math.e)

它使学习率指数衰减,从0.003到0.0001。

您需要在每次迭代时通过feed_dict参数将“step”参数传递给模型。

为此,需要一个新的占位符:

step = tf.placeholder(tf.int32)

该解决方案可以在文件mnist_2.1_five_layers_relu_lrdecay.py中找到。

如果你卡住了就用它。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值