Квантованная модель TFLite дает лучшую точность, чем модель TF

Я разрабатываю пример сквозного обучения и обучения с учетом квантования. Используя набор данных CIFAR 10, я загружаю предварительно обученный MobilenetV2, а затем используйте модель код из руководства TensorFlow для квантования моей модели. После того, как весь процесс завершится должным образом, я получаю следующие результаты:

Quant TFLite test_accuracy: 0.94462
Quant TF test accuracy:     0.744700014591217
TF test accuracy:           0.737500011920929

Интересно, как такое возможно? Предполагается, что квантование немного снижает точность.

Я заметил, что в примере TensorFlow's Guide точность также немного улучшена, но очень мало по сравнению с моим примером. Чтобы быть более конкретным, при запуске этого кода, который использует mnist, я получаю результаты ниже, которые приемлемы для разработчиков TensorFlow, поскольку они упоминают, что < em> точность не изменилась.

Quant TFLite test_accuracy: 0.9817
Quant TF test accuracy:     0.9815
TF test accuracy:           0.9811

Примечание, что я не изменил код, который я прикрепил из руководства TensorFlow, я просто использую другой набор данных и модель.


person Florence    schedule 23.09.2020    source источник


Ответы (1)


Это может быть возможно, когда ваша модель не полностью сходима, а также размер вашего тестового набора данных не считается достаточно большим, чтобы отличаться от этих 2. Кроме того, даже ваша модель является сходимой, способ уменьшения вывода битов иногда может помочь диапазону случайной величины в каждом узле ограничено и иногда может соответствовать вашему случаю и помочь градиенту лучше найти оптимальную точку. Тем не менее, я все же рекомендую вам расширить свой набор тестов и проверить сходимость модели, потому что разрыв слишком велик.

Твердым доказательством для вас может служить классификация Amazon, когда они сокращают float32 до float16. Повышение точности  введите описание изображения здесь

Кроме того, для MNIST данные просты, и точность не сильно отличается, когда оно составляет всего около 0,9815 как среднее с небольшой дисперсией. Насколько я понимаю, это разумно.

person dtlam26    schedule 06.10.2020