gpt4 book ai didi

python - tf.gradients 和 tf.train.RMSPropOptimizer(lr_rate).compute_gradients 有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-03 11:45:18 26 4
gpt4 key购买 nike

有什么区别

tf.gradients

tf.train.RMSPropOptimizer(LR_RATE).compute_gradients

如果有差异,假设我想使用 tf.train.RMSPropOptimizer(self.lr_rate).apply_gradients(),哪个是首选?

谢谢!

最佳答案

不,如果您的唯一目标是获得梯度,那么这两者之间没有区别,因为 RMSPropOptimizer (或任何特定的优化器)必须导入具有 compute_gradients 的基类 Optimizer函数又使用此处的 tf.gradients 实现 tf.gradients用于计算梯度,这与简单地使用 tf.gradients 相同。

相反,如果您正在训练需要计算梯度的神经网络,则建议使用 tf.train.RMSPropOptimizer(..),因为 RMSProp 优化是在小批量设置中更快学习的方法之一。

RMSProp: Divide the learning rate (lr) for a weight (w) by a running average of the magnitudes of recent gradients for that weight.

将(动量、AdaGrad、RMSProp)等不同优化应用于梯度背后的想法是,在计算梯度后,您希望对它们进行一些处理,然后应用这些处理后的梯度。这是为了更好的学习。

因此,在 RMSProp 中,您无需始终使用恒定的学习率。相反,它取决于“近期梯度幅度的运行平均值”

tf.gradients(..) 只是计算梯度。如果您使用 tf.train.Optimizer 中的优化器之一,它会自动计算图形上的梯度。

关于python - tf.gradients 和 tf.train.RMSPropOptimizer(lr_rate).compute_gradients 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41307722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com