无法将Keras模型转换为tflite

时间:2019-04-15 15:29:33

标签: python tensorflow keras

我保存了以下行的Keras模型:

tf.keras.models.save_model(model, "path/to/model.h5")

稍后,我尝试将其转换为tflite文件,如下所示:

converter = tf.contrib.lite.TFLiteConverter.from_keras_model_file('path/to/model.h5')
tflite_model = converter.convert()
open("path/to/model.tflite", "wb").write(tflite_model)

但是我收到一个奇怪的错误:

  

您正在尝试将包含35层的权重文件加载到0层的模型中。

我知道我的模型工作正常。我能够加载它并得出推断。仅当尝试将其保存为tflite模型时才会显示此错误。

TensorFlow版本:tensorflow-gpu 1.12.0

我正在使用tf.keras。

1 个答案:

答案 0 :(得分:0)

结果证明,问题是由于显式定义了InputLayer和一些input_shape

我的模型具有以下形式:

  

InputLayer(input_shape =(...))

     

BatchNormalization()

     

....剩余层

我将其更改为:

  

BatchNormalization(input_shape =(...))

     

....剩余层

,并在此转移了先前模型的权重。现在可以正常使用了。