问题描述
我正在尝试将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(https://coremltools.readme.io/docs/introductory-quickstart)提供的CoreMLTools似乎是可行的,但是所有示例代码都演示了来自Keras
而非来自TFLite
的对话(尽管显然受到支持):
如何将TFLite模型转换为MLModel模型?
解决方法
据我所知,没有从TFLite到Core ML的直接转换。有人可以创建这样的转换器,但显然没有人。
两个选项:
-
自己动手做。有一个Python API可以读取TFLite文件(flatbuffers)和一个可以写入Core ML文件的API(coremltools中的NeuralNetworkBuilder)。逐一浏览TFLite模型的各层,然后将它们添加到NeuralNetworkBuilder中,然后另存为.mlmodel文件。
-
让TFLite为您做到这一点。当您在TFLite中使用CoreMLDelegate时,实际上它会即时执行模型转换并保存一个.mlmodel文件(或已编译的版本.mlmodelc)。然后,它使用Core ML运行此模型。您可以编写一些代码来使用CoreMLDelegate用TFLite加载模型,然后获取从应用程序捆绑包创建的.mlmodel文件并使用它。