Модель не квантуется даже после квантования после обучения

Я загрузил модель тензорного потока из Custom Vision и хочу запустить ее на коралловом tpu. Поэтому я преобразовал его в tenorflow-lite и применил гибридное квантование после обучения (насколько я знаю, это единственный способ, потому что у меня нет доступа к обучающим данным). Вы можете увидеть код здесь: https://colab.research.google.com/drive/1uc2-Yb9Ths6lEPw6ngRpfdLAgBHMxICk Когда я затем пытаюсь скомпилировать его для edge tpu, я получаю следующее:

    Edge TPU Compiler version 2.0.258810407
    INFO: Initialized TensorFlow Lite runtime.
    Invalid model: model.tflite
    Model not quantized

Есть идеи, в чем может быть моя проблема?


person Michael    schedule 11.08.2019    source источник


Ответы (2)


Модели tflite не полностью квантованы с использованием converter.optimizations = [tf.lite.Optimize.OPTIMIZE_FOR_SIZE]. Вы можете взглянуть на полное целочисленное квантование после обучения с использованием набора данных представления: // www.tensorflow.org/lite/performance/post_training_quantization#full_integer_quantization_of_weights_and_activations Просто адаптируйте функцию генератора для получения репрезентативных образцов (например, похожих изображений, которые должна прогнозировать ваша сеть классификации изображений). Конвертеру достаточно очень небольшого количества изображений, чтобы определить минимальные и максимальные значения и провести квантование вашей модели. Однако обычно ваша точность меньше по сравнению с обучением с учетом квантования.

person nibeh    schedule 26.09.2019

Я не могу найти источник, но считаю, что крайний TPU в настоящее время поддерживает только модели с 8-битным квантованием и не поддерживает гибридные операторы.

РЕДАКТИРОВАТЬ: В FAQ Кораллов упоминается, что модель должна быть полностью квантована.

Вам необходимо преобразовать вашу модель в TensorFlow Lite, и она должна быть квантована с использованием обучения с учетом квантования (рекомендуется) или полного целочисленного квантования после обучения.

person Silfverstrom    schedule 11.08.2019
comment
хм .. и тогда не было бы возможности создать квантованную модель tenorflow lite, верно? (потому что у меня нет исходных данных) - person Michael; 11.08.2019
comment
@Michael К сожалению, нет. Если я прав, вам нужно будет изучить обучение с учетом квантования, которое требует, чтобы вы обучили модель и, конечно же, имели обучающие данные. - person Silfverstrom; 12.08.2019
comment
@Michael нашел ссылку на Corals FAQ, которая, кажется, подразумевает, что для работы вам нужна полностью квантованная модель. Смотрите мою правку. - person Silfverstrom; 12.08.2019