Сайт TensorFlow утверждает, что квантизация обеспечивает в 3 раза меньшую задержку на мобильных устройствах:
https://www.tensorflow.org/lite/performance/post_training_quantization
Я попытался проверить это утверждение и обнаружил, что квантованные модели на 45% -75% МЕНЬШЕ, чем модели Float, несмотря на то, что их размер почти в 4 раза меньше. Излишне говорить, что это очень разочаровывает и противоречит заявлениям Google.
В моем тесте используется официальная модель Google MnasNet: https://storage.googleapis.com/mnasnet/checkpoints/mnasnet-a1.tar.gz
Вот средняя задержка на основе 100 операций вывода на только что перезагруженном телефоне:
- Пиксель 2: float = 81мс, квант = 118мс
- Moto E: float = 337 мс, квант = 590 мс
- Сокровище LG: float = 547мс, квант = 917мс
Мое тестовое приложение измеряет время только для одного метода (tfLite.runForMultipleInputsOutputs). Результаты очень непротиворечивы (в пределах 1% при многократном выполнении).
Я надеюсь увидеть некоторые комментарии от команды Tensorflow или любого, кто может поделиться своими метриками. Числа выше основаны на модели классификатора изображений. Я также протестировал детектор объектов SSD MobileNetV2 с похожими результатами (квантованная модель существенно медленнее).