У меня есть модель тензорного потока, как показано на картинке. И пытаюсь конвертировать в 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.]