Я обнаружил, что мы можем оптимизировать модель 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
), эти слои не удалить из графа? удаляются только состояния потери и состояния оптимизатора ...