将PoseNet TensorFlow.js参数转换为TensorFlow Lite

问题描述 投票:0回答:1

我是TensorFlow的新手,如果我说些荒唐的话,我深表歉意。

我一直在使用TensorFlow.js在PoseNet中使用browser模型。在此项目中,我可以更改algorithm and parameters,以便在检测某些姿势时可以获得更好的结果。在我的用例中,最重要的参数是乘数,数量字节和输出步幅。

到目前为止,我已经取得了想要的结果。但是,我想将这些结果转换为TensorFlow Lite,以便可以在iOS应用程序中使用它。我设法在TensorFlow Lite文件(tflite)中找到了PoseNet模型,甚至找到了TensorFlow提供的iOS app示例,我能够加载模型文件并使它在iOS上运行。

问题是...我无法在iOS应用上更改参数(乘数,量化字节和输出步幅)。我无法在任何地方找到它。我试图在iOS应用程序源代码中搜索这些参数,我试图找到将TensorFlow.js模型转换为TensorFlow Lite的方法,以便我可以在应用程序中加载所需的参数,但是没有运气。

[我正在写这篇文章,所以也许你们可以为我指出正确的方向,这样我就可以将TensorFlow.js上的内容“翻译”为TensorFlow Lite。

编辑:

这是最近几天我学到的:

TFLite设计用于在轻量级运行时为固定模型提供服务。因此,按需修改模型参数并不是其设计目标。

我查看了PoseNet的TF.js代码,发现了类似的设计。看来您可以修改参数,因为它们对于每个参数实际上都有不同的模型。 https://github.com/tensorflow/tfjs-models/blob/b72c10bdbdec6b04a13f780180ed904736fa52a5/posenet/src/checkpoints.ts#L37

TFLite模型通常不支持动态参数。创建神经网络时,输出跨度乘数和量化字节是固定的参数。

所以我要做的是从TF.js模型中提取权重,然后将其放入现有的MobileNet代码中。

这就是我现在需要帮助的地方。谁能指出我要加载和更改模型的方向,以便随后可以使用自己的参数将其转换为tflite?

EDIT2:

我找到了一个可帮助我将TF.js模型转换为TF Lite Griffin98/posenet_tfjs2tflite的存储库。我仍然无法定义Quant Bytes。

tensorflow tensorflow-lite tensorflow.js tensorflow-hub
1个回答
0
投票

您可能会发现此存储库很有用:https://github.com/tensorflow/tfjs/tree/master/tfjs-converter

这是PoseNet的Python实现:https://github.com/atomicbits/posenet-python

© www.soinside.com 2019 - 2024. All rights reserved.