【发布时间】:2020-06-28 06:52:59
【问题描述】:
使用分布策略似乎不支持渐变裁剪
("优化器中的梯度裁剪" “(通过设置clipnorm 或clipvalue)当前是” “使用分发策略时不受支持。”)
有什么理由吗?我很想定义一个自定义def _minimize(strategy, tape, optimizer, loss, trainable_variables):,直接剪裁渐变。
【问题讨论】:
标签: tensorflow
使用分布策略似乎不支持渐变裁剪
("优化器中的梯度裁剪" “(通过设置clipnorm 或clipvalue)当前是” “使用分发策略时不受支持。”)
有什么理由吗?我很想定义一个自定义def _minimize(strategy, tape, optimizer, loss, trainable_variables):,直接剪裁渐变。
【问题讨论】:
标签: tensorflow
GitHub 用户 tomerk wrote:
当您进行分发时,有两个可能的剪辑位置 启用策略:
- 在梯度聚合之前(通常是错误的)
- 梯度聚合后(通常是正确的,符合人们的期望)
我们希望它在第二种情况下工作(渐变后的剪辑是 汇总)。问题是优化器是用剪辑编写的 在聚合之前发生在代码中。
我们考虑过改变这一点,但它需要:
- api 更改会破坏优化器 apply_gradients/其他非最小化方法的现有用户
- 更改优化器实现者需要实现的方法的签名,破坏现有的自定义优化器
所以而不是:
- 悄悄地在错误的地方进行剪辑
- 增加流失率并打破现有用户或现有自定义优化器仅针对此单个功能
我们决定暂时禁用此功能。我们将提供支持 为此进入一个更大的优化器重构,解决更大的集合 的问题。
现在是implemented。
【讨论】: