Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Квантование в курсе обучения

Поддержка TensorFlow Модель оптимизация

Есть две формы квантования: после обучения квантования и квантования осведомлены обучения. Начните с пост-тренировочного квантования , так как это проще в использовании, хотя квантование в курсе обучения часто лучше для точности модели.

Эта страница содержит обзор квантования осведомлены обучения, чтобы помочь вам определить, насколько он соответствует вашему прецеденту.

обзор

Квантование в курсе обучения эмулирует вывод времени квантования, создавая модель, которая ниже по течению инструменты будут использовать для производства фактически квантованных моделей. Квантованные модели используют более низкую точности (например, 8-бит вместо 32-битной плавающей точки), что приводит к выгодам во время развертывания.

Развертывание с квантованием

Квантование приносит улучшение определенных моделей сжатия и латентное сокращение. С API по умолчанию, в психотерапевтах размера модели в 4 раза, и мы обычно видим между 1,5 - 4x улучшения задержки процессора в тестируемых движках. В конце концов, задержки улучшения можно увидеть на совместимых ускорителей машинного обучения, таких как EdgeTPU и NNAPI.

Техника используется в производстве в речи, зрения, текст и перевод прецедентов. Код в настоящее время поддерживает подмножество этих моделей .

Эксперимент с квантованием и сопутствующим оборудованием

Пользователи могут настраивать параметры квантования (например, число битов) и в какой-то степени, лежащие в основе алгоритмов. не с этими изменениями от API по умолчанию, там не поддерживается путь к развертыванию.

API, специфичные для данной конфигурации являются экспериментальными и не подлежат обратную совместимость.

совместимость с API

Пользователи могут применять квантование со следующим API:

  • Модель здания: tf.keras только с Sequential и функциональных моделей.
  • TensorFlow версии: 2.x TF для ТФ-еженощно.
    • tf.compat.v1 с пакетом 2.X TF не поддерживается.
  • режим выполнения TensorFlow: нетерпеливое исполнение

Именно на нашей дорожной карте, чтобы добавить поддержку в следующих областях:

  • Модель здание: выяснить, как подклассы Модель была ограничена без поддержки
  • Распределенная обучение: tf.distribute

Общая матрица поддержки

Поддержка доступна в следующих областях:

  • Покрытие модели: модели с использованием белого списка слоев , BatchNormalization когда следует Conv2D и DepthwiseConv2D слоев, а в отдельных случаях, Concat .
  • Аппаратное ускорение: наше API по умолчанию совместимо с ускорением на EdgeTPU, NNAPI и TFLite движках, среди других. Смотрите предостережение в дорожной карте.
  • Развертывание с квантованием: только на ось квантования для сверточных слоев, а не за тензор квантования, в настоящее время поддерживается.

Именно на нашей дорожной карте, чтобы добавить поддержку в следующих областях:

  • Модель покрытия: расширена, чтобы включить РНН / LSTMs и общую поддержку Concat.
  • Аппаратное ускорение: обеспечить конвертер TFLite может производить полный целые модели. Смотрите этот вопрос подробнее.
  • Эксперимент с прецедентами квантования:
    • Эксперимент с алгоритмами квантования, которые охватывают Keras слоев или требуют стадии подготовки.
    • Стабилизировать API.

Полученные результаты

классификация изображений с помощью инструментов

Модель Non-квантуется Top-1 Точность 8-битный Квантованная Точность
MobilenetV1 224 71,03% 71,06%
RESNET v1 50 76,3% 76,1%
MobilenetV2 224 70,77% 70,01%

Модели были протестированы на Imagenet и оценены как TensorFlow и TFLite.

классификация изображений для техники

Модель Non-квантуется Top-1 Точность 8-разрядный Квантованная Точность
Nasnet-Мобильный 74% 73%
RESNET-v2 50 75,6% 75%

Модели были протестированы на Imagenet и оценены как TensorFlow и TFLite.

Примеры

В дополнение к квантование в курсе обучения , например , в следующих примерах:

  • CNN модель на MNIST рукописной цифр классификации задаче с квантованием: код

Для фона на что - то подобное, увидеть Квантование и обучения нейронных сетей для эффективного Integer-Арифметика-только Inference бумаги . В данной статье представлены некоторые понятия, что этот инструмент использует. Реализация не точно такой же, и есть дополнительные понятия, используемые в данном инструменте (например, на ось квантования).