Является ли вывод из модели глубокого обучения Tensorflow быстрее, чем керас - PullRequest
0 голосов
/ 24 июня 2019

Я использую TenorRT API для оптимизации модели U-NET, которая построена с использованием керас.Результат после оптимизации не достаточно хорош, поэтому я думаю о том, чтобы сделать ту же модель в тензорном потоке, так как Keras - высокопроизводительный API, и, возможно, его вывод медленный.Поэтому мой вопрос заключается в том, что построение той же модели в tenorflow улучшит вывод по сравнению с моделью keras.И оптимизировал ли тензоррт модель тензорного потока лучше, чем керас.

Я провел некоторое исследование, но ничего не нашел относительно скорости вывода той же модели в тензорном потоке и керасе.

Ответы [ 2 ]

0 голосов
/ 24 июня 2019

Keras (при использовании tf backend) - это библиотека, которая создает тензорные вычислительные графы.Вычисления выполняются на этих графиках, а не непосредственно Keras.Если вы не уверены, что можете оптимизировать сгенерированный график вручную, вы не ожидаете никаких различий в производительности.Вы можете использовать функцию обратного вызова Тенрасора Keras, чтобы визуализировать модель тензорного потока в тензорной доске.А затем определите, можете ли вы оптимизировать его вручную.Я бы не рекомендовал никому отказываться от этого подхода, кроме исследователей ML и разработчиков библиотек ML.

Если проблема заключается в показателях точности / ошибок модели, а не в циклах CPU / GPU при выполнении логического вывода;Я не верю, что преобразование в тензорный поток обязательно улучшит модель.

Если вы хотите помочь с самой моделью, возможно, вы можете попытаться перефразировать вопрос с описанием модели (это действительно поможет, еслиработает в общедоступном наборе данных).

0 голосов
/ 24 июня 2019

Насколько я тестировал, существенной разницы не было (возможно, крошечные накладные расходы для Keras).

Лучшее ожидаемое время вывода не будет получено при переключении с кераса на тензорный поток. Я работал с TensorRT, и большинство проблем связано с тем, что не все слои поддерживаются (для преобразования / оптимизации).

Убедитесь, что все, что для всего конвейера Keras Model - TensorFlow Model - Layer Optimization - TensorRT выполняется с той же версией tenorflow. Я бы рекомендовал тренировать модель через tensorflow.keras вместо простого keras.

Кроме того, убедитесь, что вы конвертируете с правильными операциями FP. (FP32 / FP16 / INT8). Наибольший выигрыш в скорости логического вывода был бы, если бы вы преобразовали стандарт (FP32) в INT8. По моему опыту, преобразование из FP32 в FP16 значительно не ускорится.

Семантическая сегментация является наиболее дорогой вычислительной задачей, поэтому не ожидайте, что, например, на TX2 будет развернута очень быстрая модель логического вывода (с TensorRT).

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