我是机器学习的新手。 我在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模型是否正常,或者是否来自我构建模型的方式。