Tensorflow - h5 模型到 tflite 转换错误

标签 tensorflow keras keras-layer tensorflow-lite

我使用预训练的 InceptionV3 模型进行了学习迁移,并保存了 h5 模型文件。之后,我就可以做出预测了。 现在,我想使用 TFLiteConverter.convert() 方法将 h5 模型转换为 tflite 文件,如下所示:

converter = lite.TFLiteConverter.from_keras_model_file('keras.model.h5')
tflite_model = converter.convert()

但是我得到这个错误:

File "from_saved_model.py", line 28, in <module>
    tflite_model = converter.convert()
  File "C:\Anaconda3\lib\site-packages\tensorflow\contrib\lite\python\lite.py", line 409, in convert
    "invalid shape '{1}'.".format(_tensor_name(tensor), shape))
ValueError: None is only supported in the 1st dimension. Tensor 'input_1' has invalid shape '[None, None, None, 3]'

我在 Windows 10 64 位上运行 Anaconda Python 3.6.8。预先感谢您的帮助!

最佳答案

将模型从 TensorFlow 转换为 TensorFlow Lite 时,只允许批量大小(索引 0)为None。在调用 from_keras_model_file 以使输入数组形状有效时,您应该能够使用 input_shapes 参数。对于 InceptionV3 模型,input_shapes 参数通常是 {'Mul' : [1,299,299,3]}

TFLiteConverter.from_keras_model_file 的文档可用 here .接受的参数如下(从文档中复制):

from_keras_model_file(
    cls,
    model_file,
    input_arrays=None,
    input_shapes=None,
    output_arrays=None
)

关于Tensorflow - h5 模型到 tflite 转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54211413/

相关文章:

python - 使用具有附加属性的自定义层保存和加载 keras 模型

python - 当使用 Python TensorFlow 输入形状 (53,))... 这个逗号是怎么回事?

tensorflow - 如何从序列模型中的给定数据集创建训练-开发-测试集

tensorflow - TensorFlow的 `conv2d_transpose()`操作是做什么的?

tensorflow - GPU 上的数据增强

keras - 如何让 keras ImageGenerator 正确加载 16 位图像?

tensorflow - Keras CTC损失输入

keras - 更改 VGG16 应用程序的输入张量形状

youtube - 如何编写用于分布式YoutTube-8m挑战训练的群集规范?

python - Tensorflow 2.0 中 tf.contrib.framework.nest.flatten_dict_items() 的等效项是什么?