【问题标题】:How to identify input and output arrays of a tensoflow model for the process of ".tflite" conversion?如何识别“.tflite”转换过程的张量流模型的输入和输出数组?
【发布时间】:2019-08-12 06:49:52
【问题描述】:

我正在尝试从 .pb 文件生成量化的 .tflite 模型。对于#process,我需要模型的“input_arrays”和“output_arrays”。

我尝试使用以下方法来识别输入数组和输出数组。但它们都不起作用。

方法一:

import tensorflow as tf
frozen='/output/freeze/frozen_inference_graph.pb'
gf = tf.GraphDef()
gf.ParseFromString(open(frozen,'rb').read())
[n.name + '=>' +  n.op for n in gf.node if n.op in ('Softmax','Placeholder')]    
[n.name + '=>' +  n.op for n in gf.node if n.op in ( 'Softmax','Mul')]

方法二:

import tensorflow as tf
gf = tf.GraphDef()   
m_file = open('/output/freeze/frozen_inference_graph.pb','rb')
gf.ParseFromString(m_file.read())
for n in gf.node:
    print( n.name )

tflite 转换查询:

import tensorflow as tf
graph_def_file = "new/barun/frozen_inference_graph.pb"
input_arrays = ['image_tensor']
output_arrays = ['BoxPredictor_5/ClassPredictor/act_quant/FakeQuantWithMinMaxVars']

converter = tf.lite.TFLiteConverter.from_frozen_graph(
  graph_def_file, input_arrays, output_arrays,input_shapes={"image_tensor":[1,300,300,3]})
converter.inference_type = tf.lite.constants.QUANTIZED_UINT8
tflite_model = converter.convert()
open("frozen_inference_graph_fd2819_2.tflite", "wb").write(tflite_model)

如何找到.pb文件的input_array和output_array?

【问题讨论】:

    标签: tensorflow tensorflow-lite


    【解决方案1】:

    冷冻模型是你自己的吗?在这种情况下,您可以在创建模型时命名图层。

    否则,您也许可以在某种检查工具中打开模型,例如 Netron,然后查找名称。

    【讨论】:

      【解决方案2】:

      如果您自己创建了模型,那么input_arrays 将是输入占位符张量的名称列表。我们用于推理的输出张量将在output_arrays 中具有它们的名称。

      如果我们有从其他来源轻松下载的模型,您可以有一些解决方法。

      1. 在大多数 TF 项目中,作者在 README 部分中提供了输入/输出张量的详细信息。
      2. 此外,大多数项目使用graph.get_tensor_by_name() 方法来获取输入输出张量,以便他们可以使用它们进行推理(特别是tf.Session())。您可以深入探索推理文件以发现张量的名称。

      如果所有其他方法都不起作用,那么正如@Silfverstrom 所说,我们可以使用Netron 来可视化图表。

      另一种可视化图表的方法是TensorBoard。将图表写入事件文件,例如,

      file_writer = tf.summary.FileWriter('/path/to/logs', sess.graph)
      

      然后打开 TensorBoard 之类的,

      tensorboard --logdir path/to/logs
      

      最后,只有图表可以帮你解决问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-07
        相关资源
        最近更新 更多