如何将Tensorflow对象检测API模型转换为TFLite



我正在尝试将Tensorflow对象检测模型(ssd-mobilenet-v2-fpnlite,来自Tensorflow 2检测模型动物园(转换为TFLite。首先,我使用model_main_tf2.py训练模型,然后使用export_tflite_graph_tf2.py导出保存的模型(.pb(。然而,当要将.pb文件转换为.tflite时,它会抛出错误

OSError: SavedModel file does not exist at: /content/gdrive/My Drive/models/research/object_detection/fine_tuned_model/saved_model/saved_model.pb/{saved_model.pbtxt|saved_model.pb}

要转换我使用的.pb文件:

import tensorflow as tf
SAVED_MODEL_PATH = os.path.join(os.getcwd(),'object_detection', 'fine_tuned_model', 'saved_model', 'saved_model.pb')
# SAVED_MODEL_PATH: '/content/gdrive/My Drive/models/research/object_detection/exported_model/saved_model/saved_model.pb'
converter = tf.lite.TFLiteConverter.from_saved_model(SAVED_MODEL_PATH)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
converter.experimental_new_converter = True
converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS, tf.lite.OpsSet.SELECT_TF_OPS]
tflite_model = converter.convert()
open("detect.tflite", "wb").write(tflite_model)

或";tflite_convert;来自命令行,但出现相同错误。我也试着用最新的tf夜间版本运行它,正如这里所建议的那样,但结果是一样的。我试着用各种方法传递路径,似乎.pd写得不好(不是正确的文件(。有没有一种方法可以将模型转换为tflite,从而将其实现为android?非常感谢。

您的saved_model路径应该是"content/gdrive/My Drive/models/research/object_detection/fine_tuned_model/saved_model/";。它是文件夹而不是该文件夹中的文件

为了快速测试,请尝试键入终端

tflite_convert 
--saved_model_dir="path to saved_folder" 
--output_file="path to tflite file u want to save"

我没有足够的声誉来发表评论,但这里的问题似乎是您的SAVED_MODEL_PATH

您可以尝试硬编码路径并删除.pb文件。我不记得这里到底有什么诀窍,但这肯定是由于的路径

最新更新