TF-TRT против UFF-TensorRT - PullRequest
       145

TF-TRT против UFF-TensorRT

3 голосов
/ 17 января 2020

Я обнаружил, что мы можем оптимизировать модель Tensorflow несколькими способами. Если я ошибаюсь, пожалуйста, сообщите мне.

1 - Используя TF-TRT , этот разработчик API от tenorflow и интегрировал TensoRT в Tensorflow, и этот API называется:

from tenorflow. python .compiler.tensorrt import trt_convert as trt

Этот API-интерфейс может быть применен к любым моделям тензор-потока (моделям новой и старой версии) без какой-либо ошибки преобразования, поскольку если это API не поддерживает какие-либо новые слои, не учитывает эти уровни для механизмов TensorRT, и эти уровни остаются для механизма Tensorflow и работают на Tensorflow. не так ли?

2 - Использование TensorRT , Этот API разработан NVIDA и не зависит от библиотеки Tenorflow (не интегрирован в Tensorflow), и этот API называется:

import tenorrt как trt

Если мы хотим использовать этот API, сначала мы должны преобразовать граф тензорного потока в UFF, используя uff-convertor, а затем проанализировать граф UFF для этого API. В этом случае, если график Tensorflow имеет неподдерживаемые слои, мы должны использовать плагин или пользовательский код для этих слоев, верно?

3 - я не знаю, когда мы работаем с моделями Tensorflow, почему мы используем UFF-конвертер тогда TensorRT, мы можем использовать напрямую TF-TRT API, верно? Если да, тестировали ли вы модель оптимизации Tensorflow из этих двух методов, чтобы получить одинаковую производительность? В чем преимущество этого метода UFF-конвертера?

У меня есть вопрос по поводу двух приведенных выше случаев:

4 - я конвертирую ssd_mobilenet_v2, используя два случая. В случае 1 я добиваюсь небольшого улучшения скорость, но в случае 2, я достигаю большего улучшения, почему? Мое мнение таково, что в случае 1 API рассматривает только преобразование точности (FP32 в FP16) и объединение возможных слоев вместе, но в случае 2 график очищается UFF, таким как удаление любых избыточных узлов, таких как Asserts и Идентификация, а затем преобразование в тензорный граф, верно?

5 - когда мы преобразуем обученные файлы моделей, такие как .ckpt и .meta, ..., в замороженный граф вывода (.pb file), эти слои не удалить из графа? удаляются только состояния потери и состояния оптимизатора ...

1 Ответ

1 голос
/ 26 января 2020

Дубликат поста с ответами здесь: https://github.com/NVIDIA/TensorRT/issues/341

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...