为什么Adam优化器的Keras实现有衰减参数而Tensorflow没有?

为什么Adam优化器的Keras实现有衰减参数而Tensorflow没有?,tensorflow,neural-network,keras,deep-learning,Tensorflow,Neural Network,Keras,Deep Learning,为什么Adam优化器的Keras实现有衰减参数而Tensorflow没有?这个论点是什么意思?为什么很难回答 不过,当你的火车到达极限时,衰减是很有趣的。 降低学习率可能会改善您的模型并获得更好的结果。但是机器学习是关于测试的 其思想是简单地降低每次批量更新中的学习率值 这是Keras使用的公式: lr = self.lr if self.initial_decay > 0: lr = lr * (1. / (1. + self.decay * K.cast(self.iterat

为什么Adam优化器的Keras实现有衰减参数而Tensorflow没有?这个论点是什么意思?

为什么很难回答

不过,当你的火车到达极限时,衰减是很有趣的。 降低学习率可能会改善您的模型并获得更好的结果。但是机器学习是关于测试的

其思想是简单地降低每次批量更新中的学习率值

这是Keras使用的公式:

lr = self.lr
if self.initial_decay > 0:
    lr = lr * (1. / (1. + self.decay * K.cast(self.iterations, K.dtype(self.decay))))
基本上是:

lr / (1 + decay*currentBatch) #considering currentBatch keeps incresing, not looping    
这些差异可能在某种程度上反映了关于是否学习的讨论 应用时甚至需要速率衰减

Adam使用单个学习率更新任何参数。这意味着网络中的每个参数都有一个特定的相关学习率。 使用初始学习率作为上限来计算参数的单一学习率。这意味着每个学习率可以从0到初始学习率不等。 学习速率会在训练步骤中自行调整,但如果您希望确保每个更新步骤都不会超过上限,则可以使用指数衰减法降低初始全局学习速率。
因此,这些原因说明了为什么与Adam讨论学习率衰减是否有必要。

谢谢你的回答。首先,Tensorflow不是这样实现的吗?我想你不是在问如何在Tensorflow中实现adan的lr衰减。你想知道lr衰减对adam是否有意义?我正在使用Keras重建Tensorflow模型,我发现,他们正在使用adam优化,但他们以自定义方式更新学习率,而没有使用adam优化,这让我感到困惑。另外,当我阅读Adam优化的Tensorflow文档时,没有像Keras那样的衰变论点。所以,我想知道为什么它们之间有区别。