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.]