转换后的 Tensorrt 模型与 Tensorflow 模型的输出形状不同?
Posted
技术标签:
【中文标题】转换后的 Tensorrt 模型与 Tensorflow 模型的输出形状不同?【英文标题】:Converted Tensorrt model has different output shape from Tensorflow model? 【发布时间】:2019-06-03 15:08:01 【问题描述】:我有一个 tensorflow 模型并转换为 tensorrt 模型。 TensorFlow 模型的 uff 转换如下图所示。输入为图像,输出为 Openpose/concat_stage7
NOTE: UFF has been tested with TensorFlow 1.12.0. Other versions are not guaranteed to work
UFF Version 0.6.3
=== Automatically deduced input nodes ===
[name: "image"
op: "Placeholder"
attr
key: "dtype"
value
type: DT_FLOAT
attr
key: "shape"
value
shape
dim
size: -1
dim
size: -1
dim
size: -1
dim
size: 3
]
=========================================
=== Automatically deduced output nodes ===
[name: "Openpose/concat_stage7"
op: "ConcatV2"
input: "Mconv7_stage6_L2/BiasAdd"
input: "Mconv7_stage6_L1/BiasAdd"
input: "Openpose/concat_stage7/axis"
attr
key: "N"
value
i: 2
attr
key: "T"
value
type: DT_FLOAT
attr
key: "Tidx"
value
type: DT_INT32
]
==========================================
Using output node Openpose/concat_stage7
Converting to UFF graph
No. nodes: 463
UFF Output written to cmu/cmu_openpose.uff
Tensorflow 模型输出形状为
self.tensor_output = self.graph.get_tensor_by_name('TfPoseEstimator/Openpose/concat_stage7:0')
(?, ?, ?, 57)
当我运行 tensorrt 时,输出维度是 (217500,)? 如何获得与 TensorFlow 模型相同的维度?
【问题讨论】:
【参考方案1】:是的,现在一切都解决了,我可以在 TensorRT 中生成与 Tensorflow 模型输出相同的结果。
问题是 TensorRT 以扁平格式生成输出数组。需要根据需要重新塑造尺寸。
所以我要做的是检查 Tensorflow 输出的维度并相应地重塑。
【讨论】:
以上是关于转换后的 Tensorrt 模型与 Tensorflow 模型的输出形状不同?的主要内容,如果未能解决你的问题,请参考以下文章