Обзор преобразования модели

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

Рабочий процесс преобразования

Преобразование моделей TensorFlow в формат TensorFlow Lite может осуществляться несколькими способами в зависимости от содержимого вашей модели ML. На первом этапе этого процесса вам следует оценить свою модель, чтобы определить, можно ли ее напрямую преобразовать. Эта оценка определяет, поддерживается ли содержимое модели стандартными средами выполнения TensorFlow Lite на основе используемых ею операций TensorFlow. Если ваша модель использует операции за пределами поддерживаемого набора, у вас есть возможность провести рефакторинг модели или использовать расширенные методы преобразования.

На диаграмме ниже показаны общие этапы преобразования модели.

Рабочий процесс преобразования TFLite

Рисунок 1. Рабочий процесс преобразования TensorFlow Lite.

В следующих разделах описан процесс оценки и преобразования моделей для использования с TensorFlow Lite.

Входные форматы модели

Вы можете использовать конвертер со следующими форматами входных моделей:

Вы можете сохранить модели Keras и конкретные функции как SavedModel и преобразовать их, используя рекомендуемый путь.

Если у вас есть модель Jax, вы можете использовать API TFLiteConverter.experimental_from_jax , чтобы преобразовать ее в формат TensorFlow Lite. Обратите внимание, что этот API может быть изменен в экспериментальном режиме.

Оценка конверсии

Оценка вашей модели — важный шаг перед попыткой ее преобразования. При оценке вы хотите определить, совместимо ли содержимое вашей модели с форматом TensorFlow Lite. Вам также следует определить, подходит ли ваша модель для использования на мобильных и периферийных устройствах с точки зрения размера используемых моделью данных, требований к ее аппаратной обработке, а также общего размера и сложности модели.

Для многих моделей преобразователь должен работать «из коробки». Однако встроенная библиотека операторов TensorFlow Lite поддерживает подмножество основных операторов TensorFlow, а это означает, что для некоторых моделей могут потребоваться дополнительные шаги перед преобразованием в TensorFlow Lite. Кроме того, некоторые операции, поддерживаемые TensorFlow Lite, имеют ограниченные требования к использованию по соображениям производительности. См. руководство по совместимости операторов , чтобы определить, требуется ли рефакторинг вашей модели для преобразования.

Преобразование модели

Конвертер TensorFlow Lite принимает модель TensorFlow и генерирует модель TensorFlow Lite (оптимизированный формат FlatBuffer , идентифицируемый расширением файла .tflite ). Вы можете загрузить SavedModel или напрямую преобразовать модель, созданную в коде.

Конвертер принимает 3 основных флага (или параметра), которые настраивают преобразование для вашей модели:

  1. Флаги совместимости позволяют указать, должно ли преобразование допускать пользовательские операторы.
  2. Флаги оптимизации позволяют указать тип оптимизации, применяемой во время преобразования. Наиболее часто используемым методом оптимизации является квантизация после обучения .
  3. Флаги метаданных позволяют добавлять метаданные в преобразованную модель, что упрощает создание кода оболочки для конкретной платформы при развертывании моделей на устройствах.

Вы можете преобразовать свою модель с помощью API Python или инструмента командной строки . См. руководство по модели Convert TF для получения пошаговых инструкций по запуску конвертера на вашей модели.

Обычно вы конвертируете свою модель для стандартной среды выполнения TensorFlow Lite или среды выполнения сервисов Google Play для TensorFlow Lite (бета-версия). Некоторые расширенные варианты использования требуют настройки среды выполнения модели, что требует дополнительных шагов в процессе преобразования. Дополнительную информацию см. в разделе «Расширенная среда выполнения» обзора Android.

Расширенное преобразование

Если при запуске конвертера на вашей модели вы столкнулись с ошибками , скорее всего, у вас проблема с совместимостью операторов. Не все операции TensorFlow поддерживаются TensorFlow Lite. Вы можете обойти эти проблемы, проведя рефакторинг модели или используя расширенные параметры преобразования, которые позволяют создать модифицированную модель формата TensorFlow Lite и пользовательскую среду выполнения для этой модели.

Следующие шаги