将 TFLite (TensorFlow) 转换为 MLModel (Apple)

Roi*_*lia 3 python tensorflow coreml coremltools tensorflow2.0

我正在尝试将 TFLite Face Mesh 模型转换为 MLModel (Apple)。

TFLite 型号说明: https://drive.google.com/file/d/1VFC_wIpw4O7xBOiTgUldl79d9LA-LsnA/view

TFLite实际.tflite文件: https://github.com/google/mediapipe/blob/master/mediapipe/models/face_landmark.tflite

查看 Apple 提供的 CoreMLTools ( https://coremltools.readme.io/docs/introductory-quickstart ) 似乎是可能的,但所有示例代码都演示了来自Keras和不来自的对话TFLite(尽管明确支持):

在此输入图像描述

如何将 TFLite 模型转换为 MLModel 模型?

Mat*_*ans 8

据我所知,没有从 TFLite 到 Core ML 的直接转换。有人可以创建这样一个转换器,但显然没有人这样做。

两种选择:

  1. 自己做。有一个用于读取 TFLite 文件 (flatbuffers) 的 Python API 和一个用于写入 Core ML 文件的 API(coremltools 中的 NeuralNetworkBuilder)。逐层浏览 TFLite 模型的各层,并将它们添加到 NeuralNetworkBuilder 中,然后保存为 .mlmodel 文件。

  2. 让 TFLite 为您做这件事。当您在 TFLite 中使用 CoreMLDelegate 时,它​​实际上会即时执行模型转换并保存 .mlmodel 文件(或编译版本 .mlmodelc)。然后它使用 Core ML 来运行该模型。您可以编写一些代码来使用 CoreMLDelegate 通过 TFLite 加载模型,然后获取从应用程序包创建的 .mlmodel 文件并使用它。