首页 > 解决方案 > 使用 TensorFlow 对象检测模型时面临“图形包含循环”错误

问题描述

我正在使用 SSD Inception V2 生成 .pb 文件,然后使用 Open Vinos 模型优化器转换 TensorFlow 对象检测 API 模型以获得更好的推理结果。在堆栈跟踪中面临以下问题:

[ ERROR ]  -------------------------------------------------
[ ERROR ]  ----------------- INTERNAL ERROR ----------------
[ ERROR ]  Unexpected exception happened.
[ ERROR ]  Please contact Model Optimizer developers and forward the following information:
[ ERROR ]  Graph contains a cycle.
[ ERROR ]  Traceback (most recent call last):
File "/opt/ryme/computer_vision_sdk_2018.0.011/deployment_tools /model_optimizer/mo/main.py", line 222, in main
return driver(argv)
File "/opt/ryme/computer_vision_sdk_2018.0.011/deployment_tools/model_optimizer/mo/main.py", line 190, in driver
mean_scale_values=mean_scale)
File "/opt/ryme/computer_vision_sdk_2018.0.011/deployment_tools/model_optimizer/mo/pipeline/tf.py", line 141, in tf2nx
partial_infer(graph)
File "/opt/ryme/computer_vision_sdk_2018.0.011/deployment_tools/model_optimizer/mo/middle/passes/infer.py", line 55, in partial_infer
nodes = nx.topological_sort(graph)
File "/opt/ryme/computer_vision_sdk_2018.0.011/deployment_tools/model_optimizer/venv/lib64/python3.5/site-packages/networkx/algorithms/dag.py", line 157, in topological_sort
raise nx.NetworkXUnfeasible("Graph contains a cycle.")
networkx.exception.NetworkXUnfeasible: Graph contains a cycle.

[ ERROR ]  ---------------- END OF BUG REPORT --------------
[ ERROR ]  -------------------------------------------------

标签: python-3.xtensorflow

解决方案


如果您使用的是 <1.6 的 tensoflow 版本,我们将收到此错误。

请参阅以下文档页面以了解相同的错误

文档路径:

computer_vision_sdk_2018./deployment_tools/documentation/docs/TensorFlowObjectDetectionSSD.html

为了解决这个问题,需要使用 --output 命令行参数手动指定图形的输出节点。

转换命令:

TensorFlow* SSD 的模型优化器命令行示例 从 TensorFlow 对象检测 API Zoo 转换 SSD 的最终命令行是:

./mo_tf.py --input_model="path_to_frozen.pb" --tensorflow_use_custom_operations_config extensions/front/tf/legacy_ssd_support.json --output="detection_boxes,detection_scores,num_detections"

谢谢,Rajeswari Ponnuru。


推荐阅读