Tensorflow Frozen_graph到Tflite for Android App

时间:2019-09-27 11:29:41

标签: tensorflow tensorflow-lite

我是TensorFlow对象检测库的新手。我有一个特定的数据集,该数据集可以产生我自己的内容,并用数千个jpg标记。我已经运行了该文件以从这些图像中检测对象..不管怎样。在过程结束时,我得到了Frozen_graph,并从中将model.ckpl文件导出到推理图文件夹,一切正常,并且我已经测试了model.ckpl在object_detection.ipynb文件上建立模型,效果很好。在此步骤之前,没有问题。 但是,我无法理解如何将那个model.ckpl文件转换成model.tflite文件以在android studio应用上使用。

我看到了很多东西like,但我不知道什么是input_tensors = [...] output_tensors = [...] 我可能已经知道,但实际上是什么...

您能告诉我如何转换吗?

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

如果您不知道输入和输出,请使用summary_graph工具并将其作为冻结模型。 在这里查看命令 https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tools/graph_transforms#inspecting-graphs

答案 2 :(得分:0)

如果您从头开始训练模型,则必须具有.meta文件。另外,您还需要指定输出节点名称,使用它们可以创建.pb文件。请参考以下链接以创建此文件的步骤:

Tensorflow: How to convert .meta, .data and .index model files into one graph.pb file

创建后,您可以将.pb进一步转换为tflite,如下所示:

import tensorflow as tf

graph_def_file = "model.pb"
input_arrays = ["model_inputs"]
output_arrays = ["model_outputs"]

converter = tf.lite.TFLiteConverter.from_frozen_graph(
        graph_def_file, input_arrays, output_arrays)

tflite_model = converter.convert()

open("converted_model.tflite", "wb").write(tflite_model)