将冻结模型“.pb”文件转换为“.tflite”文件所需的参数 input_arrays 和 output_arrays 是什么?

2024-01-28

我需要转换我的.pb张量流模型和我的.cpkt文件到一个tflite模型以使其在移动设备中工作。有没有什么直接的方法可以找出如何找到我应该用于 input_arrays 和 output_arrays 的参数?

import tensorflow as tf

graph_def_file = "/path/to/Downloads/mobilenet_v1_1.0_224/frozen_graph.pb"
input_arrays = ["input"]
output_arrays = ["MobilenetV1/Predictions/Softmax"]

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)

根据官方文档here https://www.tensorflow.org/api_docs/python/tf/lite/TFLiteConverter :

input_arrays:用于冻结图形的输入张量列表。

output_arrays:用于冻结图形的输出张量列表。

意义,input_arrays是输入张量的列表(主要是占位符张量)。output_arrays是列表Tensor将充当输出的对象。

就您而言,您提供的是name of the Tensor目的。需要一个实际的 Tensor 对象。

你可以通过这个例子来理解:

x1 = tf.placeholder( dtype=tf.float32 )
x2 = tf.placeholder( dtype=tf.float32 )
y = x1 + x2

input_arrays = [ x1 , x2 ]
output_arrays = [ y ]

您可以学习如何找到输入和输出张量here https://stackoverflow.com/questions/43517959/given-a-tensor-flow-model-graph-how-to-find-the-input-node-and-output-node-name。 看到你的代码,看来你知道张量名称,所以你可以参考这个answer https://stackoverflow.com/questions/36612512/tensorflow-how-to-get-a-tensor-by-name.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将冻结模型“.pb”文件转换为“.tflite”文件所需的参数 input_arrays 和 output_arrays 是什么? 的相关文章

随机推荐