- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
回想一下,当 exponentially decaying TensorFlow 中的学习率:
decayed_learning_rate = learning_rate * decay_rate ^ (global_step / decay_steps)
文档提到这个楼梯选项是:
If the argument staircase is True, then global_step /decay_steps is an integer division and the decayed learning rate follows a staircase function.
什么时候最好每 X 步衰减并遵循楼梯函数,而不是每一步衰减越来越多的平滑版本?
最佳答案
现有的答案似乎没有描述这一点。有两种不同的行为被描述为“楼梯”行为。
来自 feature request for staircase ,该行为被描述为手动调整的分段恒定衰减率,以便用户可以提供一组迭代边界和一组衰减率,以便在迭代通过给定值后使衰减率跳至指定值边界。
如果你查看actual code for this feature pull request ,您会发现 PR 与函数参数中的阶梯选项没有太大关系。相反,它定义了一个完全独立的 piecewise_constant
操作,并且关联的单元测试展示了如何使用 learning_rate_decay.piecewise_constant
将您自己的自定义学习率定义为分段常数。
来自 the documentation on decaying the learning rate ,该行为被描述为将 global_step/Decay_steps
视为整数除法,因此对于第一组 decay_steps
步骤,除法结果为 0,并且学习率是恒定的。一旦经过第 decay_steps
次迭代,衰减率就会提高到 1 的幂,然后是 2 的幂,等等。因此,您只能观察特定幂的衰减率,而不是平滑地观察衰减率如果您将全局步骤视为 float ,则所有权力都会有所不同。
至于优点,这只是您应该根据您的问题做出的超参数决定。使用阶梯选项可以让您保持衰减率恒定,本质上就像在模拟退火中保持较高的温度较长时间一样。这可以让您通过在梯度方向上迈出更大的步伐来探索更多的解决方案空间,但代价可能是嘈杂或无效的更新。同时,平稳地增加衰减率功率将稳定地“冷却”探索,这可能会因为让你陷入局部最优而限制你,但它也可以防止你在嘈杂的大梯度步骤上浪费时间。
一种方法或另一种方法是否更好(a)通常并不重要,(b)通常需要在可能重要的情况下进行专门调整。
另外,正如功能请求链接提到的,分段常数操作似乎适用于非常具体调整的用例,当您有单独的证据支持基于收集训练指标作为迭代函数来手动调整衰减率时。我通常不建议将其用于一般用途。
关于machine-learning - 当 TensorFlow 中的学习率衰减时,什么时候应该将阶梯设置为 True?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38045943/
有没有办法在下面的代码中避免 if..else 条件并在一行中执行此操作? var myObject = {}, data = ["Chennai", "Thoothukkudi", "Mad
我有一个客户想要在他们的主页上使用一个特定的设计来匹配他们在杂志封面上看到的内容。封面的基本阶梯设计从未改变,但图像偶尔会改变。如果不使用 1 个大图像,我无法设计出一种方法来覆盖这种格式。 这是一个
我正在尝试解决 HackerRank 中的一个问题,但我的提交有问题。我的代码在 PyCharm 中有效,但 HackerRank 不接受我的提交。 这是我要解决的问题:https://www.hac
嗨,我是个新手,正在尝试通过 hackerrank 来提高,我正在进行楼梯练习 staircase excercise 但是我的输出与问题不同,因为我的楼梯似乎在结果前面有一个额外的空间,从而使其不正
我正在尝试解决 this使用 std::cout 的 C++ 问题并使用 setw和 setfill 我原来的代码是这样的: void staircase(int n) { for(int i
问题可用here .我的 Python 代码是 def solution(A, B): if len(A) == 1: return [1] ways = [0] *
这是我创建的 IF -Else 阶梯,用于将第一个可见控件聚焦在我的表单上。根据要求,任何控件都可以隐藏在表单上。所以我必须找到第一个可见控件并聚焦它。 if (ddlTranscriptionMe
我正在尝试构建一个系统,用户可以在其中轻松创建各种类型的锦标赛并与其他用户一起参与。它不针对特定游戏,而是一种通用工具,用于在任何设备上尽快查看和更新锦标赛结果,交互最少,因此实际应用程序不会妨碍
我正在使用 ORACLE 数据库,并且正在尝试为以下要求创建 SQL 查询。 以下是我的表快照: ID STATUS ---------- 1 WORKING 1 QUEUIN
我在用, JPA 2.0 Mojarra 2.1.9 JSF 组件库,Primefaces 3.5。 MySQL 5.6.11 我在 MySQL 数据库中有一个名为 state_table 的表以三列
我是一名优秀的程序员,十分优秀!