我有tensorflow模型,如图所示。并尝试转换为TensorRT。

需要在转换为TensorRT的upsample节点的插件。
对于Tensorflow实现,假设输入大小为1x3x4x19形状,并上采样为1x12x14x19张量。
在TensorRT插件中实现了同样的东西,考虑的流程如下。
tensorflow中的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]平面化的数据被输入到upsample的插件中。我在插件中的CUDA代码期望得到如上所示的扁平化数据。
但是插件输出是稀疏的,与Tensorflow的上采样输出不同。我使用Openpose1(如图所示)数据检查了Tensorflow的上采样操作。
在TensorRT引擎中插入的数据格式是否正确?如果没有,输入数据是如何输入到插件中的?
插件输出看起来像是垂直扁平化的输入,如下所示
[1,1,1,2,2,2,3,3,3...etc.]发布于 2019-09-04 14:30:48
过了一段时间,问题就解决了。插件输入为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格式。
https://stackoverflow.com/questions/57706067
复制相似问题