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 Edge
- Комплект открытия STM32F746
- Adafruit EdgeBadge
- Adafruit TensorFlow Lite для набора микроконтроллеров
- Игровая площадка Adafruit Circuit Bluefruit
- Эспрессиф ESP32-DevKitC
- Эспрессиф ESP-EYE
- Терминал Wio: ATSAMD51
- Совет по развитию искусственного интеллекта для конечных точек Himax WE-I Plus EVB
- Платформа разработки программного обеспечения Synopsys DesignWare ARC EM
- Sony Spresense
Изучите примеры
Каждый пример приложения на Github и имеет README.md
файл , который объясняет , как он может быть развернут на поддерживаемых платформах. В некоторых примерах также есть сквозные учебные пособия с использованием конкретной платформы, как показано ниже:
- Привет мир - Демонстрирует абсолютные основы использования TensorFlow Lite для микроконтроллеров
- Не Micro речи - Захватывает звук с микрофона , чтобы обнаружить слова «да» и «нет»
- Волшебная палочка - Снимает акселерометр данных для классификации три различных физических жестов
- Обнаружения человека - захватывает данные камеры с датчиком изображения , чтобы обнаружить присутствие или отсутствие какого - либо лица
Рабочий процесс
Для развертывания и запуска модели TensorFlow на микроконтроллере требуются следующие шаги:
- Поезд модели:
- Сформировать небольшую модель TensorFlow , которая может поместиться целевое устройство и содержит поддерживаемые операции .
- Преобразовать в модели TensorFlow Lite с помощью конвертера TensorFlow Lite .
- Преобразование в массив байтов С использованием стандартных инструментов , чтобы сохранить его в программной памяти только для чтения на устройстве.
- Запуск вывода на устройстве с помощью C ++ библиотеки и обрабатывать результаты.
Ограничения
TensorFlow Lite для микроконтроллеров разработан с учетом конкретных ограничений разработки микроконтроллеров. Если вы работаете с более мощными устройствами (например, со встроенным устройством Linux, таким как Raspberry Pi), стандартную структуру TensorFlow Lite может быть проще интегрировать.
Следует учитывать следующие ограничения:
- Поддержка для ограниченного подмножества операций TensorFlow
- Поддержка ограниченного набора устройств
- Низкоуровневый C ++ API, требующий ручного управления памятью
- Обучение на устройстве не поддерживается
Следующие шаги
- Начало работы с микроконтроллерами , чтобы попробовать пример приложения и узнать , как использовать API.
- Понимание библиотеки C ++ , чтобы узнать , как использовать библиотеку в своем проекте.
- Создание и модель конвертирована , чтобы узнать больше об обучении и преобразовательных моделях для развертывания на микроконтроллерах.