我对机器学习很陌生。我在 Github 上找到了这个例子:代码
我实现了 q_learning_keras 函数并将 Keras 模型更改为 tf.keras 模型。
使用 Keras 模型 1000 集大约需要 30 分钟。
使用 tf.keras 模型 1000 集大约需要 110 分钟。
此外,tf.keras 变体需要大约 5-7% 的 CPU 功率。
我使用的是 Tensorflow 1.13.1 版和 Keras 2.2.4 版。
我在 4 核 @ 2.6 GHz 的虚拟机上运行代码。
凯拉斯模型:
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 模型是否正常,或者它是否来自我构建模型的方式。