LiteRT para microcontroladores

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:

Explorar os exemplos

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:

Fluxo de trabalho

As etapas a seguir são necessárias para implantar e executar um modelo do TensorFlow em um microcontrolador:

  1. 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.
  2. 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.

É preciso considerar as seguintes limitações:

  • Suporte a um subconjunto limitado de Operações do TensorFlow
  • Suporte para um conjunto limitado de dispositivos
  • API C++ de baixo nível que exige gerenciamento manual de memória
  • O treinamento no dispositivo não é compatível

Próximas etapas