我是TensorFlow对象检测库的新手。我有一个特定的数据集,该数据集可以产生我自己的内容,并用数千个jpg标记。我已经运行了该文件以从这些图像中检测对象..不管怎样。在过程结束时,我得到了Frozen_graph,并从中将model.ckpl文件导出到推理图文件夹,一切正常,并且我已经测试了model.ckpl在object_detection.ipynb文件上建立模型,效果很好。在此步骤之前,没有问题。 但是,我无法理解如何将那个model.ckpl文件转换成model.tflite文件以在android studio应用上使用。
我看到了很多东西like,但我不知道什么是input_tensors = [...] output_tensors = [...] 我可能已经知道,但实际上是什么...
您能告诉我如何转换吗?
答案 0 :(得分:0)
使用tensorboard找出您的输入和输出层。作为参考,请点击以下链接-
答案 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)