首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tensorflow新接口: TensorRT create_inference_graph错误

tensorflow新接口: TensorRT create_inference_graph错误
EN

Stack Overflow用户
提问于 2018-04-25 23:47:28
回答 2查看 1.6K关注 0票数 2

我有一个用于目标检测的自定义的更快的R-CNN网络,其中我定义了一些自定义的运算符:nmsroi_pooling,它们被编译成.so文件。包装了.so文件,它可以被tensorflow框架调用。

在我将tensorflow冻结的图形转换为.pb文件后,我使用以下代码:

代码语言:javascript
复制
trt_graph = trt.create_inference_graph(graph_def, OUTPUT_NAMES,
                                         max_batch_size=cfg.test_batch_per_gpu,
                                         max_workspace_size_bytes=5000000000,
                                         precision_mode="FP16")  # Get optimized graph

但是它报告了很多警告和错误:

代码语言:javascript
复制
2018-04-25 23:45:54.451261: W tensorflow/contrib/tensorrt/convert/convert_graph.cc:418] subgraph conversion error for subgraph_index:0 due to: "Invalid argument: Failed to create Input layer" SKIPPING......( 30 nodes)
2018-04-25 23:45:54.452898: E tensorflow/contrib/tensorrt/log/trt_logger.cc:38] DefaultLogger Parameter check failed at: ../builder/Network.cpp::addInput::377, condition: isValidDims(dims)
2018-04-25 23:45:54.452914: W tensorflow/contrib/tensorrt/convert/convert_graph.cc:418] subgraph conversion error for subgraph_index:1 due to: "Invalid argument: Failed to create Input layer" SKIPPING......( 23 nodes)
2018-04-25 23:45:54.455730: W tensorflow/contrib/tensorrt/convert/convert_graph.cc:418] subgraph conversion error for subgraph_index:2 due to: "Unimplemented: Require 4 dimensional input. Got 2 resnet_v1_50_5/Exp" SKIPPING......( 9 nodes)
2018-04-25 23:45:54.457270: W tensorflow/contrib/tensorrt/convert/convert_graph.cc:418] subgraph conversion error for subgraph_index:3 due to: "Unimplemented: Require 4 dimensional input. Got 2 resnet_v1_50_5/Exp_1" SKIPPING......( 9 nodes)
2018-04-25 23:45:54.458798: W tensorflow/contrib/tensorrt/convert/convert_graph.cc:418] subgraph conversion error for subgraph_index:4 due to: "Unimplemented: Require 4 dimensional input. Got 2 resnet_v1_50_5/Exp_5" SKIPPING......( 9 nodes)
2018-04-25 23:45:54.460327: W tensorflow/contrib/tensorrt/convert/convert_graph.cc:418] subgraph conversion error for subgraph_index:5 due to: "Unimplemented: Require 4 dimensional input. Got 1 resnet_v1_50_5/strided_slice_60" SKIPPING......( 6 nodes)
2018-04-25 23:45:54.461882: W tensorflow/contrib/tensorrt/convert/convert_graph.cc:418] subgraph conversion error for subgraph_index:6 due to: "Unimplemented: Require 4 dimensional input. Got 2 resnet_v1_50_5/Exp_6" SKIPPING......( 9 nodes)
2018-04-25 23:45:54.463425: W tensorflow/contrib/tensorrt/convert/convert_graph.cc:418] subgraph conversion error for subgraph_index:7 due to: "Unimplemented: Require 4 dimensional input. Got 1 resnet_v1_50_5/strided_slice_6" SKIPPING......( 6 nodes)
2018-04-25 23:45:54.464976: W tensorflow/contrib/tensorrt/convert/convert_graph.cc:418] subgraph conversion error for subgraph_index:8 due to: "Unimplemented: Require 4 dimensional input. Got 2 resnet_v1_50_5/ones_2" SKIPPING......( 4 nodes)
2018-04-25 23:45:54.466543: E tensorflow/contrib/tensorrt/log/trt_logger.cc:38] DefaultLogger Parameter check failed at: ../builder/Network.cpp::addInput::377, condition: isValidDims(dims)
2018-04-25 23:45:54.466571: W tensorflow/contrib/tensorrt/convert/convert_graph.cc:418] subgraph conversion error for subgraph_index:9 due to: "Invalid argument: Failed to create Input layer" SKIPPING......( 33 nodes)
2018-04-25 23:45:54.468105: W tensorflow/contrib/tensorrt/convert/convert_graph.cc:418] subgraph conversion error for subgraph_index:10 due to: "Unimplemented: Require 4 dimensional input. Got 2 resnet_v1_50_5/ones_1" SKIPPING......( 3 nodes)
2018-04-25 23:45:54.469726: W tensorflow/contrib/tensorrt/convert/convert_graph.cc:418] subgraph conversion error for subgraph_index:11 due to: "Unimplemented: Require 4 dimensional input. Got 2 resnet_v1_50_5/Exp_7" SKIPPING......( 9 nodes)
2018-04-25 23:45:54.471356: W tensorflow/contrib/tensorrt/convert/convert_graph.cc:418] subgraph conversion error for subgraph_index:12 due to: "Unimplemented: Require 4 dimensional input. Got 2 resnet_v1_50_5/ones_3" SKIPPING......( 4 nodes)
2018-04-25 23:45:54.473207: E tensorflow/contrib/tensorrt/log/trt_logger.cc:38] DefaultLogger Parameter check failed at: ../builder/Network.cpp::addInput::377, condition: isValidDims(dims)
2018-04-25 23:45:54.473259: W tensorflow/contrib/tensorrt/convert/convert_graph.cc:418] subgraph conversion error for subgraph_index:13 due to: "Invalid argument: Failed to create Input layer" SKIPPING......( 380 nodes)
2018-04-25 23:45:54.475765: W tensorflow/contrib/tensorrt/convert/convert_graph.cc:418] subgraph conversion error for subgraph_index:14 due to: "Unimplemented: Require 4 dimensional input. Got 1 resnet_v1_50_5/strided_slice_8" SKIPPING......( 6 nodes)
...

这个错误的原因是什么?如何解决这个问题?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-10-01 18:45:11

这可能是因为当调用TensorRT来优化图形时,它要求所有张量的大小都是已知的。一种可能的修复方法是为更快的rcnn模型指定固定的输入图像张量大小,例如,对模型配置文件进行以下修改。

原文:

代码语言:javascript
复制
faster_rcnn {
  num_classes: 90
  image_resizer {
    keep_aspect_ratio_resizer {
      min_dimension: 600
      max_dimension: 1024
    }
  }
  ......

修改后:

代码语言:javascript
复制
faster_rcnn {
  num_classes: 90
  image_resizer {
    fixed_shape_resizer {
      height: 600
      width:  1024
    }
  }
  ......

参考:https://github.com/NVIDIA-Jetson/tf_trt_models/issues/6#issuecomment-423098067

票数 0
EN

Stack Overflow用户

发布于 2018-06-19 05:44:16

当您的输入节点未正确注册时会发生这种情况,请确保您使用的是正确的输入节点名称,您可以从会话中将tf图中的节点名称打印为print([n.name for n in tf.get_default_graph().as_graph_def().node])。有关详细信息,请参阅nvidia开发人员论坛,https://devtalk.nvidia.com/default/topic/1032314/?comment=5251907

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50026420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档