如何从 Tensorflow ObjectDetection 2 中的检查点导出 freeze_inference_graph.pb

use*_*375 5 python object-detection computer-vision tensorflow object-detection-api

我怎样才能将训练好的模型导出到frozen_inference_graph.pb而不是saved_model.pb,因为当我使用Tensorflow对象检测v2附带的exporter_main_v2.py时,它给了我一个文件夹

\n
\xe2\x94\x9c\xe2\x94\x80 exported-models/\n   \xe2\x94\x94\xe2\x94\x80 my_model/ \n      \xe2\x94\x9c\xe2\x94\x80 checkpoint/\n      \xe2\x94\x9c\xe2\x94\x80 saved_model/\n            \xe2\x94\x94\xe2\x94\x80 assets/\n            \xe2\x94\x9c\xe2\x94\x80 variables/\n            \xe2\x94\x94\xe2\x94\x80 saved_model.pb\n      \xe2\x94\x94\xe2\x94\x80 pipeline.config\n
Run Code Online (Sandbox Code Playgroud)\n

在 save_model 中我有 saving_model.pb 但问题是我不能单独使用它进行推理,但我需要使用它附带的变量文件夹。这就是为什么我问是否有一种方法可以将经过训练的模型导出到 freeze_inference_graph.pb 以使用它进行推理,而不需要 TF1 中的变量文件夹。

\n

Mat*_*att 5

不幸的是,TF2 不支持 export_inference_graph.py,它可以完成您所要求的确切操作 - 但仅适用于 TF1。exporter_main_v2.py 不会导出任何冻结图。

你可以做的就是使用冻结你的图表

from tensorflow.python.tools import freeze_graph
freeze_graph.freeze_graph(...)
Run Code Online (Sandbox Code Playgroud)

您还可以在计算机上的tensorflow\python\tools 中找到freeze_graph.py 文件,该文件对如何使用它有很好的评论。另外,您可以看看如何冻结它:freeze_graph_test 但是,TF2 不再打算生成冻结图!

编辑:可以在这里找到很好的解决方法


Sum*_*man 1

我们在 TensorFlow 模型 git 中引用了导出模型进行推理的参考,请尝试使用它 - https://github.com/tensorflow/models/blob/master/research/object_detection/export_inference_graph.py