我有一个最初使用Estimator API编写的网络,我想利用tensorflow TensorRT集成。我可以从SavedModel加载模型并在其上运行create_inference_graph。但是,当我尝试导入从“ create_inference_graph”获得的图定义时,出现以下错误:
File "/python2.7/site-packages/tensorflow/python/framework/importer.py", line 422, in import_graph_def
raise ValueError(str(e))
ValueError: Node 'my_trt_op_6': Unknown input node 'my_trt_op_0'
当我冻结tftrt图并尝试将其加载到tensorboard时,我得到相同的错误。打印出tftrt GraphDef中的节点会输出一个对我来说毫无意义的终端,看起来像\ 000 \ 000 \ 000 \ 000 \ 000 \ 000 \ 002 \ 000 \ 000 \ 000 \ 000 \ 000 \ 200?\ 000 \ 000 \ 200 ?\ n \ 000 \ 000 \ 000输出PH_0 \ 000 \ 000 \ 000 \ 010 \ 000 \ 014 \ 000 \ 004 \ 000 \ 010 \ 000 \ 010 \ 000 \ 000 \ 000 \ 010 \ 000 \ 000 \ 000 \ 024 \ 000 \ 000 \ 000 \ 003 \ 000 \ 000 \ 000 \ 001 \ 000 \ 000 \ 000 \ 000 \ 000 \ 000 \ 000 \ 000 \ 000 \ 000 \ 000 \ 000 \ 003 \ 000 \ 000 \ 000 \ 000 \ 002 \ 000 \ 000 \ 000 \ 034 \ 000 \ 000 \ 000 \ 034 \ 000 \ 000 \ 000(这只是终端输出的一小部分示例)。
在使用tftrt优化之前,我可以在加载的模型上使用sess.run(y_tensor,feed_dict = {x_tensor:x_test})运行简单推断。我还在官方tensorflow模型存储库中的示例MNIST Estimator模型上测试了我正在使用的所有代码(保存估计器模型,将模型加载到没有Estimator API的会话中,将图转换为trt优化图并运行加速推断),以及代码该模型效果很好。
当我运行create_inference_graph时,convert_graph和trt_logger确实收到了很多错误和警告,但是基于转换其他模型的结果,这些错误和警告通常并不表示致命的故障。如果对理解为什么发生有用,我可以在这里发布。
如何解决此问题并在模型的trt优化版本上进行推断?