Порядок весов TensorRT по сравнению с Tensorflow [H, W, IN_C, OUT_C]

Мне нужно вручную добавить сверточный слой, так как у меня есть специальная операция, которая не поддерживается парсером Tensorflow. Какого порядка весов TensorRT ожидает читать из файла .wts? Например, тензор веса conv2d Tensorflow обычно имеет порядок [H, W, IN_CHANNEL, OUT_CHANNEL]. Я знаю, что TensorRT ожидает, что входные данные будут в порядке NCHW, но нужно ли менять порядок весов, когда он записывается в файл .wts? Если да, то какой заказ получит TensorRT? [IN_CHANNEL, OUT_CHANNEL, H, W]?


person 昊天滕    schedule 03.12.2018    source источник


Ответы (1)


Краткое резюме ... если вы спрашиваете о порядке сортировки весов, вас также может беспокоить порядок входных данных. Ответ, опубликованный здесь, вероятно, даст вам большую часть того, что вам нужно по обоим пунктам: Запустите Tensorflow с NVIDIA TensorRT Inference Engine

Дополнительные сведения ... Недавно я решил эти проблемы, используя специальные инструменты, и вот соответствующие факторы, с которыми я столкнулся:

  • порядок данных входного изображения, который равен NHWC для тензорного потока и NCHW для тензорного потока; а внутри канала изображения - порядок цветов, например RGB против BGR

  • веса сортировать заказы по слоям

    • для двумерной свертки тензорный поток использует RSCK ([filter_height, filter_width, input_depth, output_depth]), а tensorrt использует KCRS.

    • для плотного слоя, следующего за двумерным слоем свертки или объединения, отрегулируйте порядок сортировки весов для другой последовательности сглаживания, эффективно преобразовав RSCK для тензорного потока в KCRS для тензорного, где теперь R и S относятся ко всей высоте и ширине входного слоя, соответственно, C - это input_depth, как и раньше, а теперь глубина вывода K - это количество нейронов плотного слоя

    • для плотного слоя, следующего за плотным слоем, преобразовать CK в порядок KC

(примечание: этот ответ предполагает, что вы не используете группы ни в одной из сверток)

person patricks    schedule 03.09.2019