LiteRT для микроконтроллеров

LiteRT для микроконтроллеров предназначен для запуска моделей машинного обучения на микроконтроллерах и других устройствах с объемом памяти всего несколько килобайт. Среда выполнения ядра умещается всего в 16 КБ на Arm Cortex M3 и может запускать многие базовые модели. Он не требует поддержки операционной системы, каких-либо стандартных библиотек C или C++ или динамического выделения памяти.

Почему микроконтроллеры важны

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

Поддерживаемые платформы

LiteRT для микроконтроллеров написан на C++ 17 и требует 32-битной платформы. Он был тщательно протестирован со многими процессорами на базе архитектуры Arm Cortex-M Series и был портирован на другие архитектуры, включая ESP32 . Фреймворк доступен в виде библиотеки Arduino. Он также может создавать проекты для сред разработки, таких как Mbed. Он имеет открытый исходный код и может быть включен в любой проект C++ 17.

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

Изучите примеры

Каждый пример приложения находится на GitHub и имеет файл README.md , в котором объясняется, как его можно развернуть на поддерживаемых платформах. В некоторых примерах также есть комплексные руководства, использующие конкретную платформу, как показано ниже:

Рабочий процесс

Для развертывания и запуска модели TensorFlow на микроконтроллере необходимы следующие шаги:

  1. Обучите модель :
  2. Запустите вывод на устройстве с помощью библиотеки C++ и обработайте результаты.

Ограничения

LiteRT для микроконтроллеров разработан с учетом конкретных ограничений разработки микроконтроллеров. Если вы работаете над более мощными устройствами (например, со встроенным устройством Linux, таким как Raspberry Pi), стандартную платформу LiteRT может быть проще интегрировать.

Следует учитывать следующие ограничения:

  • Поддержка ограниченного подмножества операций TensorFlow.
  • Поддержка ограниченного набора устройств
  • Низкоуровневый API C++, требующий ручного управления памятью.
  • Обучение на устройстве не поддерживается.

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