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

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

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

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

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

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

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

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

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

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

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

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

Ограничения

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

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

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

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