从 Tensorflow 对象检测 API zoo 模型导出错误的冻结图



我正在使用Tensorflow Object Detection API项目(https://github.com/tensorflow/models/tree/r1.12.0/research/object_detection)使用Mask R CNN模型。我坚持使用 r1.12.0 版本(但这不是必须的,但我认为它不会影响我的问题。我的计划是修改模型的一些"静态"部分,并将其再次导出为冻结图格式。

作为第一步,我打算使用脚本 (https://github.com/tensorflow/models/blob/r1.12.0/research/object_detection/export_inference_graph.py) 从检查点文件和pipeline.config重新生成冻结export_inference_graph.py图。我下载了 inception V2 模型 (http://download.tensorflow.org/models/object_detection/mask_rcnn_inception_v2_coco_2018_01_28.tar.gz) 并使用 Tensorflow 1.12.0 执行了脚本。它完成工作并创建一个冻结的图形。

问题是,如果我将原始冻结图与生成的图进行比较,它们是不同的。如果我使用Tensorboard可视化它们,它们之间存在明显的差异。有些节点丢失,有些节点不同等。

我也尝试过其他模型(正常的Fast R CNN),我总是遇到同样的问题。

这怎么可能?我应该如何使用检查点文件和pipeline.config文件来重新生成最初附加的完全相同的冻结图?

据我了解,生成冻结图的步骤很好。

关于冻结图的一件事是可以对其执行优化,例如将一些层融合在一起。优化可能会导致冻结的图形看起来不同,因为可以执行不同的优化或根本不执行优化。但是不同的冻结图并不一定意味着图是错误生成的。

这是一个关于优化冻结图以制作更快的服务模型的教程。只是在这里列出,以显示有几个优化选项。

在这里,在TensorFlow中冻结图形是什么意思? 是另一个也与这个问题有关的问题。

相关内容

最新更新