AIfES — библиотека машинного обучения для Arduino


AIfES
AIfES (Artificial Intelligence for Embedded Systems — Искусственный интеллект для встроенных систем) — это библиотека машинного обучения, реализованная на чистом C и работающая даже на 8-битных микроконтроллерах Arduino.

Создатели библиотеки — Фраунгоферовский институт микроэлектронных схем и систем (Fraunhofer Institute for Microelectronic Circuits and Systems (IMS)).
В отличие от многих существующих систем, данная библиотека позволяет не только запускать, но даже и обучать искусственные нейронные сети практически на любом оборудовании, включая 8-битный Arduino Uno.

Утверждается, что AIfES сопоставим и даже совместим с популярными фреймворками машинного обучения на Python (TensorFlow, Keras или PyTorch).

Текущая версия поддерживает нейронные сети прямого распространения. Уже реализованы такие функции активации, как: ReLU, Sigmoid, Softmax, Leaky ReLU, ELU, Tanh, Softsign.

Из типов слоёв пока реализован только полносвязный слой: Dense.
Обещана скорая реализация свёрточного слоя для создания свёрточных нейронных сетей (ConvNet).

Реализованы функции потерь: Mean Squared Error (MSE), Crossentropy.

Реализованы самые популярные оптимизаторы: Stochastic Gradient Descent (SGD) и Adam.

Библиотека поддерживает импорт нейронных сетей из других фреймворков машинного обучения.
Пример для Keras — 4_XOR_Inference_keras

Библиотека AIfES разработана по модульному принципу, что позволяет изменять различные компоненты алгоритмов. Например, для умножение матриц можно использовать аппаратные ускорители различных семейств процессоров (например, CMSIS DSP контроллеров ARM Cortex).

Ссылки
AIfES for Arduino
AIfES by Fraunhofer IMS
AIfES is an AI/ML framework written in C for even the smallest microcontrollers

По теме
Запуск TensorFlow Lite Micro на Arduino
STM32Cube.AI — пакет расширения для STM32CubeMX для встраивания нейронных сетей в микроконтроллеры STM32
CMSIS-NN — библиотека для работы с нейронными сетями для микроконтроллеров ARM Cortex-M
uTensor — AI на микроконтроллерах
Глубокие нейронные сети как следующий этап развития программного обеспечения
Будущее глубокого обучения

Нейронная сеть
Нейронная сеть — введение
Принцип обучения многослойной нейронной сети с помощью алгоритма обратного распространения
Пример работы самоорганизующейся инкрементной нейронной сети SOINN


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение