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 优化器?
就在这里!- 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 将帮助您查看问题是否由优化器引起。