- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
有什么区别
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/
有什么区别 tf.gradients 和 tf.train.RMSPropOptimizer(LR_RATE).compute_gradients 如果有差异,假设我想使用 tf.train.RMSP
我是一名优秀的程序员,十分优秀!