TensorFlow Lite para microcontroladores

O TensorFlow Lite para microcontroladores foi desenvolvido para executar modelos de machine learning em microcontroladores e outros dispositivos usando apenas alguns kilobytes de memória. O ambiente de execução principal cabe em 16 KB em um Arm Cortex M3 e pode executar muitos modelos básicos. Ele não requer suporte a sistemas operacionais, bibliotecas C ou C++ padrão nem a alocação de memória dinâmica.

Por que os microcontroladores são importantes

Os microcontroladores normalmente são dispositivos de computação pequenos e de baixa potência incorporados a hardware que exige computação básica. Ao levar machine learning a microcontroladores, podemos impulsionar a inteligência de bilhões de dispositivos que usamos em nossas vidas, incluindo dispositivos domésticos e dispositivos de Internet das Coisas, sem depender de hardware de Internet caro nem de conexões confiáveis, que geralmente estão sujeitas a restrições de largura de banda e energia e resultam em alta latência. Isso também ajuda a preservar a privacidade, já que nenhum dado deixa o dispositivo. Imagine dispositivos inteligentes que podem se adaptar à sua rotina diária, sensores industriais inteligentes que entendem a diferença entre problemas e operações normais, e brinquedos mágicos que ajudam as crianças a aprender de maneira divertida e agradável.

Plataformas compatíveis

O TensorFlow Lite para microcontroladores é escrito em C++ 11 e requer uma plataforma de 32 bits. Ele foi testado extensivamente com muitos processadores baseados na arquitetura Arm Cortex-M Series e foi portado a outras arquiteturas, incluindo ESP32. O framework está disponível como uma biblioteca Arduino. Ele também pode gerar projetos para ambientes de desenvolvimento, como o Mbed. Ele é de código aberto e pode ser incluído em qualquer projeto C++ 11.

As seguintes placas de desenvolvimento são compatíveis:

Explore os exemplos

Cada aplicativo de exemplo está no GitHub e tem um arquivo README.md que explica como ele pode ser implantado nas plataformas compatíveis. Alguns exemplos também têm tutoriais completos que usam uma plataforma específica, 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. Treine um modelo:
  2. Execute inferência no dispositivo usando a biblioteca C++ e processe os resultados.

Limitações

O TensorFlow Lite para microcontroladores foi projetado para as restrições específicas do desenvolvimento de microcontroladores. Se você estiver trabalhando em dispositivos mais potentes (por exemplo, um dispositivo Linux incorporado como o Raspberry Pi), o framework padrão do TensorFlow Lite pode ser mais fácil de integrar.

As seguintes limitações devem ser consideradas:

  • Suporte para um subconjunto limitado de operations do TensorFlow
  • Suporte para um conjunto limitado de dispositivos
  • API C++ de baixo nível que requer gerenciamento manual da memória
  • O treinamento no dispositivo não é compatível

A seguir