我保存了以下行的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。
答案 0 :(得分:0)
结果证明,问题是由于显式定义了InputLayer
和一些input_shape
。
我的模型具有以下形式:
InputLayer(input_shape =(...))
BatchNormalization()
....剩余层
我将其更改为:
BatchNormalization(input_shape =(...))
....剩余层
,并在此转移了先前模型的权重。现在可以正常使用了。