Цель квантованного .tflite - сохранить все в 8-битном формате. Если мы конвертируем fp32 pb в tflite 8bit, используя tfliteConverter / TOCO, то слои Dequantize не будут введены (в отличие от инструмента «Преобразование графика», в котором был доступен захват динамического диапазона).
Кроме того, 8-битная модель tflite должна содержать минимальные / максимальные диапазоны на уровень для активаций (будущая поддержка на канал для весов).
- Эти диапазоны используются для преобразования int32 из свертки обратно в 8 бит.
- Эти диапазоны должны быть зафиксированы через слои fakeQuant, которые должны быть введены в график при повторной подготовке / тонкой настройке.
- Если эти диапазоны недоступны, вы можете использовать фиктивную квантизацию, но точность упадет, потому что для каждого слоя установлены одинаковые диапазоны.
Это официальный способ генерации полностью квантованного 8-битного tflite. Конечно, инструмент tflite находится в стадии разработки, и некоторые операции не поддерживаются.
Используя унаследованный путь для 8 бит (инструмент Преобразование графика), у нас была возможность ввести операции печати на графике, захватить диапазоны с помощью набора калибровочных данных и зафиксировать диапазоны (мин / макс) в модели 8bit.pb. Переобучение не было необходимости.
К сожалению, этот вид «квантования после поезда» не поддерживается в tflite.