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

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

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

Преобразование моделей TensorFlow в формат TensorFlow Lite может осуществляться несколькими путями в зависимости от содержимого вашей модели машинного обучения. В качестве первого шага этого процесса вы должны оценить свою модель, чтобы определить, можно ли ее преобразовать напрямую. Эта оценка определяет, поддерживается ли содержимое модели стандартными средами выполнения 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. Флаги метаданных позволяют добавлять метаданные в преобразованную модель, что упрощает создание кода оболочки для конкретной платформы при развертывании моделей на устройствах.

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

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

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

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

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

,

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

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

Преобразование моделей TensorFlow в формат TensorFlow Lite может осуществляться несколькими путями в зависимости от содержимого вашей модели машинного обучения. В качестве первого шага этого процесса вы должны оценить свою модель, чтобы определить, можно ли ее преобразовать напрямую. Эта оценка определяет, поддерживается ли содержимое модели стандартными средами выполнения 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. Флаги метаданных позволяют добавлять метаданные в преобразованную модель, что упрощает создание кода оболочки для конкретной платформы при развертывании моделей на устройствах.

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

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

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

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

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