我正在使用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中冻结图形是什么意思? 是另一个也与这个问题有关的问题。