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