tf.keras.optimizers公司.Adam和其他具有最小化功能的优化器

2024-10-01 15:42:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用tf.contrib.keras来玩玩它。但是,有些事情我不明白。来自tf.train的类有一个函数minimize,用于优化函数。但是,minimize函数对于tf.contrib.keras.optimizers中的类不存在。假设我们有以下代码:

# tensorflow
tf.train.AdamOptimizer(learning_rate=0.001)
updateModel = trainer.minimize(loss)

# keras wrapper
trainer=tf.contrib.keras.optimizers.Adam()
updateModel = trainer.minimize(loss) # ERROR because minimize function does not exists

keras包装器无法工作,因为没有minimize函数。我试图在tensorflow中使用tf.keras来寻找一个示例或解决方法,但是我找不到任何对我有帮助的东西。在

这里我使用tf.contrib.keras.optimizers.Adam作为一个虚拟示例,但是我想使用同一个包中的其他优化器。在


Tags: 函数示例tftensorflowtraincontrib事情keras
2条回答

这是由于keras和{}api之间的差异造成的。在keras中,优化器是在模型编译期间提供的一个函数,用于梯度下降优化:

model.compile(optimizer='adam', ...)
model.fit(..) <- optimiziation performed using Adam algorithm

tensorflow-您可以按照您的演示以自定义方式使用它。在

您的困惑是因为tf.contrib.kerasAPI不是真正的tensorflow,也不是要像核心tensorflow1那样使用。在

如果您查看源代码,tf.contrib.keras.optimizers中的类与keras.optimizers中的类几乎相同。E、 例如,第一个^{}和第二个^{},第一个^{}和第二个{a4},依此类推。Keras正在逐渐被纳入tensorflow中,但现在它更像是与tensorflow捆绑在一起的另一个项目,不容易与任意的tensorflow图一起使用。相反,keras优化器应该与keras层一起使用。在

因此,您可以坚持使用所有tensorflow API并使用^{}(就像您现在所做的那样),或者使用所有kerasapi并使用Adam(参见Marcin的答案)。我看不出把两者混合起来有什么价值。在


1至少在TF 1.x中,Keras在未来的版本中可能会更多地与TF集成。

相关问题 更多 >

    热门问题