无法使用张量流重新加载保存的Keras模型

时间:2018-11-10 15:12:41

标签: tensorflow keras

我正在用一个Jupyter笔记本工作。我使用keras创建并训练了一个非常简单的CNN。它可以编译,拟合并预测良好。我将其保存为:

model.save("mymodel.hd5")

模型是一个keras.models.Sequential。

然后我再读一次:

reload_keras_model = keras.models.load_model("mymodel.hd5")

这也很好。但是,如果我尝试通过以下方式使用tensorflow来读取模型:

from tensorflow.keras.models import load_model
reload_tf_mmodel = load_model("mymodel.hd5")

失败的原因:

ValueError: Unknown layer:layers

我在github上阅读的大多数线程都说“更新您的模型”或有关自定义对象的注释(我没有使用任何线程)。我的目标平台是rpi zero,我已经能够安装tf但无法安装keras,这就是为什么我要通过tf加载的原因。为什么keras和tf.keras会以不同的方式处理此模型,我需要更新/更改以使用tf.keras读取它吗?

1 个答案:

答案 0 :(得分:0)

虽然keras(可以)将TF用作后端,但是它不能保证所保存的模型也可以在TF中读取。

请注意,您可以将keras与theano和tf一起使用,因此reload_keras_model = keras.models.load_model("mymodel.hd5")在两个后端上都可以很好地工作,因为保存/加载是在“ keras”部分完成的,而不是使用后端。

您可以使用此工具:keras_to_tensorflow

或类似的东西。