Падение производительности при обнаружении объектов Tensorflow Android - PullRequest
0 голосов
/ 23 января 2020

Я недавно обучил модель обнаружения объектов с использованием Tensorflow 1.15, и результат теста с использованием Python хороший. Однако после преобразования его в формат .tflite при запуске модели на Android производительность резко снизилась на c.

Происходит ли потеря производительности при преобразовании модели в tf-lite? Есть ли способ избежать потери производительности при конвертации?

Ссылка:

Источник обучения: https://github.com/tensorflow/models/tree/master/research/object_detection

Базовая модель для трансферного обучения : ssd_mobilenet_v1

Преобразование модели: https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/running_on_mobile_tensorflowlite.md

Python Тестовый сценарий: https://github.com/tensorflow/models/blob/master/research/object_detection/object_detection_tutorial.ipynb

Android Демо-приложение: https://github.com/tensorflow/examples/tree/master/lite/examples/object_detection

1 Ответ

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

Первый шаг, который я хотел бы сделать, это проверить его с помощью местного Python переводчика (после преобразования); таким образом, если вы проводите локальное тестирование с Python, а результаты намного хуже, значит, с преобразованием что-то не так. Как правило, квантование после обучения не должно резко снижать точность вашей модели, только на 2-3% в худшем случае.

Если результаты не плохие, когда вы передаете изображения на локальный Python Интерпретатор (т. Е. Когда вы локально тестируете преобразованную модель tf-lite), это означает, что существует проблема с тем, как вы вводите свои входные данные в Android. Убедитесь, что при подаче данных на ваши изображения в мобильном приложении применяются те же шаги предварительной обработки, что и на этапе обучения.

...