tf.keras在我的RL代码中比Keras慢4倍

时间:2019-04-03 07:07:19

标签: tensorflow machine-learning keras reinforcement-learning tf.keras

我是机器学习的新手。 我在Github上找到了以下示例:Code

我实现了q_learning_keras函数,并将Keras模型更改为tf.keras模型。

使用Keras模型时,1000个情节大约需要30分钟。
使用tf.keras模型1000个情节大约需要110分钟。
另外,tf.keras变体所需的cpu功耗也要少约5-7%。

我正在使用Tensorflow 1.13.1版和Keras 2.2.4版。
我正在具有2.6 GHz的4个内核的虚拟机上运行代码。

Keras模型:

model = Sequential()
model.add(InputLayer(batch_input_shape=(1, 5)))
model.add(Dense(10, activation='sigmoid'))
model.add(Dense(2, activation='linear'))
model.compile(loss='mse', optimizer='adam', metrics=['mae'])

tf.keras模型:

model = tf.keras.models.Sequential([
        tf.keras.layers.InputLayer(batch_input_shape=(1, 5)),
        tf.keras.layers.Dense(10, activation='sigmoid'),
        tf.keras.layers.Dense(2, activation='linear')
        ])

在上面链接的Github示例中,其余代码都完全相同。

在最结束的文章中,我发现了完全相反的问题,即Keras比tf.keras慢。所以我也希望提高速度或至少保持不变。
所以我认为,我可能犯了一个错误,但我没有找到它。

编辑:
使用Tensorboard进行更多的研究,以查看模型的外观。 在大多数情况下,这些模型看起来非常相似。但是tf.keras模型有一些开销。我不知道这对于tf.keras模型是否正常,或者是否来自我构建模型的方式。

tf.keras model keras model

0 个答案:

没有答案