TensorFlow Lite для микроконтроллеров предназначен для запуска моделей машинного обучения на микроконтроллерах и других устройствах с объемом памяти всего в несколько килобайт. Основная среда выполнения занимает всего 16 КБ на Arm Cortex M3 и может запускать многие базовые модели. Он не требует поддержки операционной системы, каких-либо стандартных библиотек C или C++ или динамического выделения памяти.
Почему микроконтроллеры важны
Микроконтроллеры, как правило, представляют собой небольшие маломощные вычислительные устройства, встроенные в аппаратное обеспечение, требующее базовых вычислений. Привнося машинное обучение в крошечные микроконтроллеры, мы можем повысить интеллект миллиардов устройств, которые мы используем в нашей жизни, включая бытовую технику и устройства Интернета вещей, не полагаясь на дорогостоящее оборудование или надежные интернет-соединения, которые часто зависят от полосы пропускания и ограничивает мощность и приводит к высокой задержке. Это также может помочь сохранить конфиденциальность, поскольку никакие данные не покидают устройство. Представьте себе интеллектуальные устройства, которые могут адаптироваться к вашей повседневной жизни, интеллектуальные промышленные датчики, которые понимают разницу между проблемами и нормальной работой, и волшебные игрушки, которые могут помочь детям учиться весело и увлекательно.
Поддерживаемые платформы
TensorFlow Lite для микроконтроллеров написан на C++ 11 и требует 32-битной платформы. Он был тщательно протестирован со многими процессорами на основе архитектуры Arm Cortex-M Series и был перенесен на другие архитектуры, включая ESP32 . Фреймворк доступен в виде библиотеки Arduino. Он также может создавать проекты для сред разработки, таких как Mbed. Он имеет открытый исходный код и может быть включен в любой проект C++ 11.
Поддерживаются следующие макетные платы:
- Arduino Nano 33 BLE Sense
- SparkFun Край
- Комплект обнаружения STM32F746
- Adafruit EdgeЗначок
- Комплект Adafruit TensorFlow Lite для микроконтроллеров
- Игровая площадка Adafruit Circuit Bluefruit
- Эспрессиф ESP32-DevKitC
- Эспрессиф ESP-EYE
- Терминал Wio: ATSAMD51
- Himax WE-I Plus EVB Endpoint AI Development Board
- Платформа разработки программного обеспечения Synopsys DesignWare ARC EM
- Сони Спресенс
Изучите примеры
Каждый пример приложения находится на Github и имеет файл README.md
, в котором объясняется, как его можно развернуть на поддерживаемых платформах. В некоторых примерах также есть сквозные учебные пособия с использованием определенной платформы, как показано ниже:
- Hello World — демонстрирует абсолютные основы использования TensorFlow Lite для микроконтроллеров.
- Микро речь — записывает звук с помощью микрофона, чтобы распознать слова «да» и «нет».
- Волшебная палочка — собирает данные акселерометра для классификации трех различных физических жестов.
- Обнаружение человека — захват данных с камеры с помощью датчика изображения для обнаружения присутствия или отсутствия человека.
Рабочий процесс
Следующие шаги необходимы для развертывания и запуска модели TensorFlow на микроконтроллере:
- Обучите модель :
- Создайте небольшую модель TensorFlow , подходящую для вашего целевого устройства и содержащую поддерживаемые операции .
- Преобразование в модель TensorFlow Lite с помощью конвертера TensorFlow Lite .
- Преобразуйте в массив байтов C, используя стандартные инструменты, чтобы сохранить его в памяти программ только для чтения на устройстве.
- Запустите вывод на устройстве с помощью библиотеки C++ и обработайте результаты.
Ограничения
TensorFlow Lite для микроконтроллеров разработан с учетом конкретных ограничений разработки микроконтроллеров. Если вы работаете с более мощными устройствами (например, со встроенным устройством Linux, таким как Raspberry Pi), интегрировать стандартную платформу TensorFlow Lite может быть проще.
Следует учитывать следующие ограничения:
- Поддержка ограниченного подмножества операций TensorFlow.
- Поддержка ограниченного набора устройств
- Низкоуровневый C++ API, требующий ручного управления памятью
- Обучение на устройстве не поддерживается
Следующие шаги
- Начните работу с микроконтроллерами , чтобы попробовать пример приложения и узнать, как использовать API.
- Познакомьтесь с библиотекой C++, чтобы узнать, как использовать библиотеку в своем собственном проекте.
- Создавайте и преобразовывайте модели , чтобы узнать больше об обучении и преобразовании моделей для развертывания на микроконтроллерах.