什么时候在 Tensorflow Gradient Tape 中应用 Momentum?

Posted

技术标签:

【中文标题】什么时候在 Tensorflow Gradient Tape 中应用 Momentum?【英文标题】:When is Momentum Applied in Tensorflow Gradient Tape? 【发布时间】:2020-09-16 18:47:01 【问题描述】:

我一直在玩 tensorflow 中的自动渐变,我有一个问题。如果我们正在更新优化器,比如 ADAM,那么动量算法何时应用于梯度?是在调用tape.gradient(loss,model.trainable_variables) 还是调用model.optimizer.apply_gradients(zip(dtf_network,model.trainable_variables)) 时应用?

谢谢!

【问题讨论】:

【参考方案1】:

tape.gradient 直接计算梯度,无需参考优化器。由于动量是优化器的一部分,磁带包含它。 AFAIK 动量通常通过在存储运行平均值的优化器中添加额外变量来实现。所有这些都在optimizer.apply_gradients 中处理。

【讨论】:

以上是关于什么时候在 Tensorflow Gradient Tape 中应用 Momentum?的主要内容,如果未能解决你的问题,请参考以下文章

TensorFLow: Gradient Clipping

linear-gradient常用实现效果

Tensorflow:如何替换或修改渐变?

Tf 2.0 : RuntimeError: GradientTape.gradient 只能在非持久性磁带上调用一次

Gradient Boost Decision Tree(GBDT)中损失函数为什么是对数形式

抑制 Tensorflow 警告