Path: blob/master/site/zh-cn/addons/tutorials/optimizers_cyclicallearningrate.ipynb
38627 views
Kernel: Python 3
Copyright 2021 The TensorFlow Authors.
In [ ]:
TensorFlow Addons 优化器: CyclicalLearningRate
在 TensorFlow.org 上查看 |
在 Google Colab 中运行 | 在 Github 上查看源代码 |
下载笔记本 |
概述
本教程将演示如何使用 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 [ ]:
在 TensorFlow.org 上查看
在 Github 上查看源代码
下载笔记本