转换为TensorRT时需要upsample
节点的插件。
对于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.]
答案 0 :(得分: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格式。