Исходное изображение полностью квантованной тензорной модели Lite - PullRequest
0 голосов
/ 27 октября 2018

Я обучил простую модель CNN на Cifar-10 тензорному потоку с поддельным квантованием (https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/quantize).. Затем я сгенерировал файл .tflite, используя toco. Теперь я хочу использовать интерпретатор python для тестирования модели tflite. .

Так как я использовал tf.image.per_image_standardization, чтобы вычесть среднее и поделить на дисперсию во время тренировки. Мне нужно сделать то же самое с данными тестирования правильно? Но проблема в том, что моя модель уже полностью квантована tflite, и она принимает только данные uint8 в качестве входных данных. Чтобы сделать стандартизацию изображения, мне нужно конвертировать мое изображение в float32. Итак, как мне преобразовать его обратно в uint8, или в этом случае даже необходима стандартизация изображения для данных тестирования? Спасибо.

1 Ответ

0 голосов
/ 30 октября 2018

Итак, оказывается, мне нужно выполнить стандартизацию данных тестирования для хорошей точности.Для этого я напрямую передаю входные изображения uint8 в функцию tf.image.per_image_standardization.Функция преобразует данные uint8 в float32, а затем выполняет стандартизацию (вычитает среднее, делит на стандартное отклонение).Вы можете найти исходный код функции здесь: https://github.com/tensorflow/tensorflow/blob/r1.11/tensorflow/python/ops/image_ops_impl.py

Теперь у меня есть стандартизированные входные изображения float32.Я написал функцию квантования для квантования изображений float32 обратно в uint8.Математика взята из этой статьи: https://arxiv.org/abs/1803.08607

Теперь у меня есть стандартизированные входные изображения uint8 , затем я использую API-интерфейс интерпретатора tflite для проверки модели.Работает как положено.

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