gpt4 book ai didi

python - 如何从保存的模型(SSD MobileNet)创建 tflite 文件

转载 作者:行者123 更新时间:2023-12-01 00:57:18 25 4
gpt4 key购买 nike

我想基于重新训练的 ssd_mobilenet 模型创建一个对象检测应用程序,我已经像 youtube 上的那个人一样重新训练了。 .

我从 Tensorflow Model Zoo 中选择了型号 ssd_mobilenet_v2_coco 。经过重新训练过程后,我得到了具有以下结构的模型:

- saved_model
- variables (empty folder)
- saved_model.pb
- checkpoint
- frozen_inverence_graph.pb
- model.ckpt.data-00000-of-00001
- model.ckpt.index
- model.ckpt.meta
- pipeline.config

在同一文件夹中,我有包含以下代码的 python 脚本:

import tensorflow as tf

converter = tf.lite.TFLiteConverter.from_saved_model("saved_model")
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)

运行此代码后,我收到以下错误:

ValueError: None is only supported in the 1st dimension. Tensor 'image_tensor' has invalid shape '[None, None, None, 3]'.

模型中似乎缺少图像宽度和高度。当我使用 YouTube 视频中的模型时,它正在工作。

经过大量研究和尝试,我尝试了其他方法,例如运行 bazel/toco,但没有任何方法可以帮助我创建 tflite 文件。

最佳答案

正如 documentation 中所述,可以在 tf.lite.TFLiteConverter.from_saved_model 中传递不同的参数.

For more complex SavedModels, the optional parameters that can be passed into TFLiteConverter.from_saved_model() are input_arrays, input_shapes, output_arrays, tag_set and signature_key. Details of each parameter are available by running help(tf.lite.TFLiteConverter).

您可以按照描述传递此信息 here 。您需要提供输入张量名称及其形状,还需要提供输出张量名称及其形状。对于ssd_mobilenet_v2_coco ,您需要定义需要使用网络的输入形状,如下所示:

tf.lite.TFLiteConverter.from_saved_model("saved_model", input_shapes={"image_tensor" : [1,300,300,3]})

关于python - 如何从保存的模型(SSD MobileNet)创建 tflite 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56150502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com