Path: blob/master/site/zh-cn/addons/tutorials/optimizers_cyclicallearningrate.ipynb
25118 views
Kernel: Python 3
Copyright 2021 The TensorFlow Authors.
In [ ]:
TensorFlow Addons 优化器: CyclicalLearningRate
![]() |
在 Google Colab 中运行 | ![]() |
![]() |
概述
本教程将演示如何使用 Addons 软件包中的周期学习率。
安装
In [ ]:
In [ ]:
加载和预处理数据集
In [ ]:
设置超参数
In [ ]:
定义模型构建和训练方法
In [ ]:
为了可重现,初始模型权重被序列化存储,你将用它来进行我们的实验。
In [ ]:
不用 CLR 训练模型
In [ ]:
设置 CLR 计划
tfa.optimizers.CyclicalLearningRate
模块返回一个可以传递给优化器的计划。该计划的输入是步数,输出值由论文中列出的 CLR 公式计算。
In [ ]:
在这里,你指定了学习率的上下限,并且计划将在该范围之间波动(本例为 [1e-4, 1e-2])。 scale_fn
用于定义一个在指定周期内缩放学习率的函数。 step_size
定义一个周期的持续时间。 step_size
为 2 意味着您需要经过 4 次迭代才能完成一个周期。推荐的 step_size
设置如下:
factor * steps_per_epoch
,factor 的范围是 [2, 8]。
In [ ]:
为了更好地观察 CLR 的效果,你可以绘制带有更多步骤的计划。
In [ ]:
您在本教程中使用的函数在 CLR 论文中被称为triangular2
。它还讨论了另外两个函数,triangular
和exp
(指数的缩写)。
使用 CLR 训练模型
In [ ]:
与预期一致,开始时损失比平时高,然后随着周期变化稳定下来。下图可以直观地确认这一点。
损失可视化
In [ ]: