为什么Tensorflow的分布式策略不支持梯度裁剪?

5
1个回答

0

GitHub用户tomerk 写道

当您启用分发策略时,有两个可能的剪切位置:

  • 在梯度被聚合之前(通常是错误的)
  • 在梯度被聚合后(通常是正确的,并且符合人们的期望)

我们希望它能够在第二种情况下正常工作(在梯度被聚合后进行剪辑)。问题是,优化器是编写的,在聚合之前就已经进行了剪辑。

我们研究了这个问题,但需要做出以下改变之一:

  • 更改API以破坏优化器apply_gradients/其他非最小化方法的现有用户
  • 更改优化器实现者需要实现的方法签名,从而破坏现有的自定义优化器

因此,我们决定:

  • 不要静默地在错误的位置进行剪裁
  • 为了解决这个单独的功能,增加更多的混乱并破坏现有的用户或现有的自定义优化器

我们相反地决定暂时禁用它。我们将把对此的支持打入更大的优化器重构中,以解决更多问题。

这个现在已经被实现了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接