Keras 中的 Tensorflow Adam 优化器

Sim*_*ood 5 python machine-learning deep-learning keras tensorflow

我在 Tensorflow 中有一个网络,我正在尝试在 Keras 中重新实现它。目前,与 Tensorflow 模型相比,Keras 模型完全表现不佳。与原始模型相比,损失要高得多并且下降得更慢。我最好的猜测是我使用了错误的优化器。在 Tensorflow 代码中,优化器如下所示:

global_step = tf.Variable(0, trainable=False)
learning_rate = tf.train.exponential_decay(0.0001,
                                           global_step,
                                           decay_steps=10000,
                                           decay_rate=0.33,   
                                           staircase=True)
optimizer = tf.train.AdamOptimizer(learning_rate, epsilon=1e-8)
train_op = optimizer.minimize(total_loss, global_step)
Run Code Online (Sandbox Code Playgroud)

在 Keras 中,它看起来像这样:

adam = keras.optimizers.Adam(lr=0.0001, beta_1=0.9, beta_2=0.999, epsilon=1e-8)
model.compile(loss=get_loss_funcs(), optimizer=adam)
Run Code Online (Sandbox Code Playgroud)

有没有办法在 Keras 中实现 Tensorflow 优化器?

Ale*_*xis 5

就在这里!- TF优化器

class TFOptimizer(Optimizer):
"""Wrapper class for native TensorFlow optimizers.
"""
Run Code Online (Sandbox Code Playgroud)

它是这样叫的:

keras.optimizers.TFOptimizer(optimizer)
Run Code Online (Sandbox Code Playgroud)

wrapp 将帮助您查看问题是否由优化器引起。