python-3.x - 使用 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 ] -------------------------------------------------
解决方案
如果您使用的是 <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。
推荐阅读
- json - Angular 2 - 将 Excel 工作表解析为 Json
- python - python-从数据框中获取列数据类型
- ruby-on-rails - rails - 故意禁用对“创建”操作的 CSRF 检查的最大安全风险是什么?
- node.js - 使用 NodeJs 的 Azure WebSocket
- javascript - 将参数传递给 GET-Request
- reactjs - 将 React 应用程序部署到 S3 脚本
- html - CSS中的图片周围没有绘制边框
- c++ - 在 C++ 中除以 2 个浮点数会产生不同的结果,具体取决于使用的方法
- css - 用于创建动画渐变按钮背景的 CSS
- sql - pl pgsql move with variable value