0

我有张量流模型,如图所示。并试图转换为 TensorRT。 在此处输入图像描述

upsample在转换为 TensorRT 时需要一个节点插件。

对于 Tensorflow 实现,假设输入大小为 1x3x4x19 形状并上采样为 1x12x14x19 张量。

在 TensorRT 插件中实现了同样的事情,考虑的流程如下。

张量流中的 1x3x4x19 张量是

[[[...19channel data ...],[...19channel data ...],[...19channel data ...],[...19channel data ...]],

 [[...19channel data ...],[...19channel data ...],[...19channel data ...],[...19channel data ...]],

 [[...19channel data ...],[...19channel data ...],[...19channel data ...],[...19channel data ...]]]

先压扁成

[...19channel data ..., ...19channel data ..., ...19channel data ..., etc.,...19channel data ...]

展平的数据长度为 228。

19 个通道的数据很难可视化。

因此,3 通道数据再次用作展平数据的示例。

[[[1,2,3],[4,5,6],[7,8,9],[10,11,12]],
 [[1,2,3],[4,5,6],[7,8,9],[10,11,12]],
 [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]]

3通道数据的扁平数组是

[1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11,12]

该扁平数据被输入到插件中以进行上采样。我在插件中的 CUDA 代码需要扁平数据,如上所示。

但是插件输出很奇怪,与 Tensorflow 的上采样输出不同。我使用 Openpose1(如图所示)数据检查了 Tensorflow 的上采样操作。

TensorRT 引擎中的插件数据格式是否正确?如果不是,如何将输入数据馈送到插件?

插件输出看起来像输入是垂直展平的

[1,1,1,2,2,2,3,3,3...etc.]
4

1 回答 1

0

用了一段时间后,问题就解决了。插件输入是 NCHW 格式。就像 1,4,7,10,1,4,7,10,1,4,7,10,2,5,8,11,2,5,8,11,2,5,8,11 ,3,6,9,12,3,6,9,12,3,6,9,12。

因此,如果匹配 Tensorflow 的 NHWC 格式,则需要处理该数据并重新格式化回 NHWC 格式。

于 2019-09-04T06:30:47.820 回答