Keras中的Tensorflow Adam优化器

时间:2018-09-04 14:53:36

标签: python tensorflow machine-learning keras deep-learning

我在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)

在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)

是否可以在Keras中实现Tensorflow优化器?

1 个答案:

答案 0 :(得分:4)

是的! -TFOptimizer

class TFOptimizer(Optimizer):
"""Wrapper class for native TensorFlow optimizers.
"""

这样称呼:

keras.optimizers.TFOptimizer(optimizer)

包装将帮助您查看问题是否归因于优化器。