TensorFlow Lite — это набор инструментов, который обеспечивает машинное обучение на устройстве, помогая разработчикам запускать свои модели на мобильных, встроенных и периферийных устройствах.
Ключевая особенность
- Оптимизирован для машинного обучения на устройстве , устраняя 5 ключевых ограничений: задержка (отсутствует обратный путь к серверу), конфиденциальность (никакие личные данные не покидают устройство), возможность подключения (подключение к Интернету не требуется), размер (уменьшенная модель и двоичный размер) и энергопотребление (эффективный вывод и отсутствие сетевых подключений).
- Поддержка нескольких платформ , включая устройства Android и iOS , встроенный Linux и микроконтроллеры .
- Поддержка разнообразных языков , включая Java, Swift, Objective-C, C++ и Python.
- Высокая производительность с аппаратным ускорением и оптимизацией модели.
Рабочий процесс разработки
В следующем руководстве описан каждый этап рабочего процесса и приведены ссылки на дальнейшие инструкции:
1. Создайте модель TensorFlow Lite.
Модель TensorFlow Lite представлена в специальном эффективном переносимом формате, известном как FlatBuffers (обозначается расширением файла .tflite ). Это дает несколько преимуществ по сравнению с форматом модели буфера протокола TensorFlow, таких как уменьшенный размер (небольшой объем кода) и более быстрый вывод (доступ к данным осуществляется напрямую без дополнительного этапа анализа/распаковки), что позволяет TensorFlow Lite эффективно выполняться на устройствах с ограниченными вычислительными ресурсами и ресурсами памяти. .
Модель TensorFlow Lite может дополнительно включать метаданные с удобочитаемым описанием модели и машиночитаемыми данными для автоматического создания конвейеров предварительной и последующей обработки во время вывода на устройстве. Дополнительные сведения см. в разделе Добавление метаданных .
Вы можете создать модель TensorFlow Lite следующими способами:
Используйте существующую модель TensorFlow Lite. Чтобы выбрать существующую модель, обратитесь к разделу «Примеры TensorFlow Lite» . Модели могут содержать или не содержать метаданные.
Преобразование модели TensorFlow в модель TensorFlow Lite. Используйте конвертер TensorFlow Lite, чтобы преобразовать модель TensorFlow в модель TensorFlow Lite. Во время преобразования вы можете применять такие оптимизации , как квантование , чтобы уменьшить размер модели и задержку с минимальной потерей точности или без нее. По умолчанию все модели не содержат метаданных.
2. Запустите вывод
Вывод относится к процессу выполнения модели TensorFlow Lite на устройстве для составления прогнозов на основе входных данных. Вы можете выполнить вывод следующими способами в зависимости от типа модели:
Модели без метаданных : используйте API -интерпретатор TensorFlow Lite . Поддерживается на нескольких платформах и языках, таких как Java, Swift, C++, Objective-C и Python.
Модели с метаданными . Вы можете создавать собственные конвейеры вывода с помощью библиотеки поддержки TensorFlow Lite . На устройствах Android пользователи могут автоматически создавать оболочки кода с помощью привязки модели Android Studio ML или генератора кода TensorFlow Lite . Поддерживается только на Java (Android), пока Swift (iOS) и C++ находятся в стадии разработки.
На устройствах Android и iOS вы можете повысить производительность с помощью аппаратного ускорения. На любой платформе вы можете использовать делегата GPU , а на iOS — Core ML Delegate . Чтобы добавить поддержку новых аппаратных ускорителей, вы можете определить свой собственный делегат .
Начать
Вы можете обратиться к следующим руководствам в зависимости от вашего целевого устройства:
Android и iOS: изучите краткое руководство по Android и краткое руководство по iOS .
Встроенный Linux: изучите краткое руководство по Python для встраиваемых устройств, таких как устройства Raspberry Pi и Coral с Edge TPU , или инструкции по сборке C++ для ARM .
Микроконтроллеры: изучите библиотеку TensorFlow Lite для микроконтроллеров для микроконтроллеров и DSP, которые содержат всего несколько килобайт памяти.
Технические ограничения
- Все модели TensorFlow не могут быть преобразованы в модели TensorFlow Lite , см. раздел Совместимость операторов .