tensorflow - 将卡住模型 '.pb' 文件转换为 '.tflite' 文件所需的参数 input_arrays 和 output_arrays 是什么?

标签 tensorflow keras tensorflow-lite yolo

我需要将我的 .pb tensorflow 模型与我的 .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 :

input_arrays: List of input tensors to freeze graph with.

output_arrays: List of output tensors to freeze graph with.

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

在您的例子中,您提供了 Tensor 对象的 name。需要一个实际的 Tensor 对象。

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

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

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

您可以从 here 中学习查找输入和输出张量. 看你的代码,好像你知道张量的名字,所以你可以引用这个answer .

关于tensorflow - 将卡住模型 '.pb' 文件转换为 '.tflite' 文件所需的参数 input_arrays 和 output_arrays 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55318440/

相关文章:

python - 将 keras fit/fit_generator 与 max_queue_size、workers 和 use_multiprocessing 一起使用

python - Tensorflow 在多数投票上表现缓慢

tensorflow - 当我尝试训练tensorflow的对象检测api时,我得到CUDA_ERROR_ILLEGAL_INSTRUCTION

machine-learning - ValueError : Error when checking input: expected lstm_1_input to have shape (None, 296, 2048) 但得到形状为 (296, 2048, 1) 的数组

python - 在keras中创建自定义激活函数

python - 如何输出网络的第二层?

tensorflow - 完全量化的 tensorflow lite 模型的输入图像

tensorflow - 值错误: Didn't find op for builtin opcode 'RESIZE_BILINEAR' version '3' Registration failed

tensorflow - 谷歌 Colab 中 tensorflow_hub 的问题

keras - 在 Keras 中加载由 callbakcs.ModelCheckpoint() 保存的模型时出错