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

有什么区别

tf.gradients

tf.train.RMSPropOptimizer(LR_RATE).compute_gradients

如果存在差异,请说我想使用tf.train.RMSPropOptimizer(self.lr_rate).apply_gradients(),哪一个更受欢迎?

谢谢!

解决方法:

不,这两者之间没有区别,如果你的唯一目标是获得渐变,因为RMSPropOptimizer(或任何特定的优化器)必须导入具有compute_gradients功能的基类优化器,而compute_gradients功能又使用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.

将(Momentum,AdaGrad,RMSProp)等不同优化应用于渐变的想法是,在计算渐变之后,您希望对它们进行一些处理,然后应用这些处理过的渐变.这是为了更好的学习.

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

而tf.gradients(..)只是计算渐变.如果使用tf.train.Optimizer中的一个优化器,它会自动计算图形上的渐变.

相关文章

MNIST数据集可以说是深度学习的入门,但是使用模型预测单张M...
1、新建tensorflow环境(1)打开anacondaprompt,输入命令行...
这篇文章主要介绍“张量tensor是什么”,在日常操作中,相信...
tensorflow中model.fit()用法model.fit()方法用于执行训练过...
https://blog.csdn.net/To_be_little/article/details/12443...
根据身高推测体重const$=require('jquery');const...