A LiteRT para microcontroladores foi projetada para executar modelos de machine learning
em microcontroladores e outros dispositivos com apenas alguns kilobytes de memória. A
O ambiente de execução do núcleo cabe apenas em 16 KB em um Arm Cortex M3 e pode executar vários
de modelos de machine learning. Ele não requer suporte ao sistema operacional padrão C ou C++.
ou alocação dinâmica de memória.
Por que os microcontroladores são importantes
Os microcontroladores são normalmente pequenos dispositivos de computação
em um hardware que exige computação básica. Ao trazer o machine learning
aprendendo a microcontroladores minúsculos, podemos aumentar a inteligência de bilhões de
dispositivos que usamos em nossas vidas, incluindo eletrodomésticos e Internet dos
Dispositivos móveis, sem depender de hardware caro ou de uma Internet confiável
o que geralmente está sujeito a restrições de largura de banda e energia e
resulta em alta latência. Isso também ajuda a preservar a privacidade, já que nenhum dado
sair do dispositivo. Imagine eletrodomésticos inteligentes que se adaptam diariamente
sensores industriais inteligentes de rotina que entendem a diferença entre
problemas e operação normal, e brinquedos mágicos que podem ajudar as crianças a aprender de forma divertida
e agradáveis.
Plataformas compatíveis
O LiteRT para microcontroladores é escrito em C++ 17 e requer uma versão do
de plataforma. Ele foi testado extensivamente com muitos processadores com base na
Arm Cortex-M Series
e foi adaptada para outras arquiteturas, incluindo
ESP32 A
está disponível como uma biblioteca Arduino. Ele também pode gerar projetos
ambientes de desenvolvimento como o Mbed. Ele é de código aberto e pode ser incluído
qualquer projeto C++ 17.
As placas de desenvolvimento a seguir são compatíveis:
Cada aplicativo de exemplo está
GitHub
e tem um arquivo README.md que explica como ele pode ser implantado em
plataformas. Alguns exemplos também têm tutoriais completos usando uma linguagem
plataforma, conforme mostrado abaixo:
Hello World –
Demonstra os fundamentos absolutos do uso da LiteRT para
Microcontroladores
Detecção de pessoa:
Captura dados da câmera com um sensor de imagem para detectar presença ou ausência
de uma pessoa
Fluxo de trabalho
As etapas a seguir são necessárias para implantar e executar um modelo do TensorFlow em um
microcontrolador:
Treinar um modelo:
Gere um modelo pequeno do TensorFlow que se ajuste ao dispositivo de destino e
tiver operações compatíveis.
Converta para um modelo LiteRT usando a função
Conversor de LiteRT (em inglês).
Converta para uma matriz de bytes C usando
ferramentas padrão para armazená-lo em um
de memória do programa somente leitura no dispositivo.
Execute inferência no dispositivo usando a biblioteca C++ e processe
os resultados.
Limitações
O LiteRT para microcontroladores foi projetado para as restrições específicas de
desenvolvimento de um microcontrolador. Se você trabalha com dispositivos mais potentes (por
exemplo, um dispositivo Linux incorporado como o Raspberry Pi), o padrão
A integração do framework LiteRT pode ser mais fácil.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-24 UTC."],[],[],null,["# LiteRT for Microcontrollers is designed to run machine learning models\non microcontrollers and other devices with only a few kilobytes of memory. The\ncore runtime just fits in 16 KB on an Arm Cortex M3 and can run many basic\nmodels. It doesn't require operating system support, any standard C or C++\nlibraries, or dynamic memory allocation.\n| **Note:** The [LiteRT for Microcontrollers Experiments](https://experiments.withgoogle.com/collection/tfliteformicrocontrollers) features work by developers combining Arduino and TensorFlow to create awesome experiences and tools. Check out the site for inspiration to create your own TinyML projects.\n\nWhy microcontrollers are important\n----------------------------------\n\nMicrocontrollers are typically small, low-powered computing devices that are\nembedded within hardware that requires basic computation. By bringing machine\nlearning to tiny microcontrollers, we can boost the intelligence of billions of\ndevices that we use in our lives, including household appliances and Internet of\nThings devices, without relying on expensive hardware or reliable internet\nconnections, which is often subject to bandwidth and power constraints and\nresults in high latency. This can also help preserve privacy, since no data\nleaves the device. Imagine smart appliances that can adapt to your daily\nroutine, intelligent industrial sensors that understand the difference between\nproblems and normal operation, and magical toys that can help kids learn in fun\nand delightful ways.\n\nSupported platforms\n-------------------\n\nLiteRT for Microcontrollers is written in C++ 17 and requires a 32-bit\nplatform. It has been tested extensively with many processors based on the\n[Arm Cortex-M Series](https://developer.arm.com/ip-products/processors/cortex-m)\narchitecture, and has been ported to other architectures including\n[ESP32](https://www.espressif.com/en/products/hardware/esp32/overview). The\nframework is available as an Arduino library. It can also generate projects for\ndevelopment environments such as Mbed. It is open source and can be included in\nany C++ 17 project.\n\nThe following development boards are supported:\n\n- [Arduino Nano 33 BLE Sense](https://store-usa.arduino.cc/products/arduino-nano-33-ble-sense-with-headers)\n- [SparkFun Edge](https://www.sparkfun.com/products/15170)\n- [STM32F746 Discovery kit](https://www.st.com/en/evaluation-tools/32f746gdiscovery.html)\n- [Adafruit EdgeBadge](https://www.adafruit.com/product/4400)\n- [Adafruit LiteRT for Microcontrollers Kit](https://www.adafruit.com/product/4317)\n- [Adafruit Circuit Playground Bluefruit](https://learn.adafruit.com/tensorflow-lite-for-circuit-playground-bluefruit-quickstart?view=all)\n- [Espressif ESP32-DevKitC](https://www.espressif.com/en/products/hardware/esp32-devkitc/overview)\n- [Espressif ESP-EYE](https://www.espressif.com/en/products/hardware/esp-eye/overview)\n- [Wio Terminal: ATSAMD51](https://www.seeedstudio.com/Wio-Terminal-p-4509.html)\n- [Himax WE-I Plus EVB Endpoint AI Development Board](https://www.sparkfun.com/products/17256)\n- [Synopsys DesignWare ARC EM Software Development Platform](https://www.synopsys.com/dw/ipdir.php?ds=arc-em-software-development-platform)\n- [Sony Spresense](https://developer.sony.com/develop/spresense/)\n\nExplore the examples\n--------------------\n\nEach example application is on\n[GitHub](https://github.com/tensorflow/tflite-micro/blob/main/tensorflow/lite/micro/examples)\nand has a `README.md` file that explains how it can be deployed to its supported\nplatforms. Some examples also have end-to-end tutorials using a specific\nplatform, as given below:\n\n- [Hello World](https://github.com/tensorflow/tflite-micro/blob/main/tensorflow/lite/micro/examples/hello_world) - Demonstrates the absolute basics of using LiteRT for Microcontrollers\n - [Tutorial using any supported device](./get_started)\n- [Micro speech](https://github.com/tensorflow/tflite-micro/blob/main/tensorflow/lite/micro/examples/micro_speech) - Captures audio with a microphone to detect the words \"yes\" and \"no\"\n - [Tutorial using SparkFun Edge](https://codelabs.developers.google.com/codelabs/sparkfun-tensorflow/#0)\n- [Person detection](https://github.com/tensorflow/tflite-micro/blob/main/tensorflow/lite/micro/examples/person_detection) - Captures camera data with an image sensor to detect the presence or absence of a person\n\nWorkflow\n--------\n\nThe following steps are required to deploy and run a TensorFlow model on a\nmicrocontroller:\n\n1. **Train a model** :\n - *Generate a small TensorFlow model* that can fit your target device and contains [supported operations](./build_convert#operation_support).\n - *Convert to a LiteRT model* using the [LiteRT converter](./build_convert#model_conversion).\n - *Convert to a C byte array* using [standard tools](./build_convert#convert_to_a_c_array) to store it in a read-only program memory on device.\n2. **Run inference** on device using the [C++ library](./library) and process the results.\n\nLimitations\n-----------\n\nLiteRT for Microcontrollers is designed for the specific constraints of\nmicrocontroller development. If you are working on more powerful devices (for\nexample, an embedded Linux device like the Raspberry Pi), the standard\nLiteRT framework might be easier to integrate.\n\nThe following limitations should be considered:\n\n- Support for a [limited subset](./build_convert#operation_support) of TensorFlow operations\n- Support for a limited set of devices\n- Low-level C++ API requiring manual memory management\n- On device training is not supported\n\nNext steps\n----------\n\n- [Get started with microcontrollers](./get_started) to try the example application and learn how to use the API.\n- [Understand the C++ library](./library) to learn how to use the library in your own project.\n- [Build and convert models](./build_convert) to learn more about training and converting models for deployment on microcontrollers."]]