TensorFlow Lite para microcontroladores

O TensorFlow Lite para microcontroladores é uma porta experimental do TensorFlow Lite desenvolvida para executar modelos de machine learning em microcontroladores e outros dispositivos usando apenas kilobytes de memória.

Ele não requer suporte a sistemas operacionais, bibliotecas C ou C ++ padrão nem a alocação de memória dinâmica. O ambiente de execução principal cabe em 16 KB em um Arm cortex M3 e ocupa um total de 22 KB, com operadores suficientes para executar um modelo de detecção de palavras-chave na fala.

Há exemplos de aplicações que demonstram o uso de microcontroladores para tarefas incluindo a detecção de palavras de ativação, classificação por gestos a partir de dados do acelerômetro e classificação de imagens usando dados da câmera.

Primeiros passos

Para testar as aplicações de exemplo e aprender a usar a API, leia os Primeiros passos com microcontroladores.

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.

Há exemplos de aplicativos disponíveis para as seguintes placas de desenvolvimento:

Para saber mais sobre as bibliotecas e exemplos, consulte os Primeiros passos com microcontroladores.

Por que os microcontroladores são importantes

Os microcontroladores normalmente são dispositivos de computação pequenos e de baixa potência que geralmente são incorporados em hardware que requer computação básica, incluindo aparelhos domésticos e dispositivos de Internet das Coisas. Bilhões de microcontroladores são fabricados a cada ano.

Os microcontroladores costumam ser otimizados para baixo consumo de energia e tamanho reduzido, à custa da diminuição no poder de processamento, memória e armazenamento. Alguns microcontroladores têm recursos projetados para otimizar o desempenho em tarefas de machine learning.

Ao executar a inferência de machine learning em microcontroladores, os desenvolvedores podem adicionar IA a uma grande variedade de dispositivos de hardware sem depender da conectividade de rede, que geralmente está sujeita a restrições de largura de banda e energia e resulta em alta latência. A execução de inferência no dispositivo também pode ajudar a preservar a privacidade, já que nenhum dado precisa sair do dispositivo.

Fluxo de trabalho do desenvolvedor

Para implantar um modelo do TensorFlow em um microcontrolador, siga este processo:

  1. Criar ou obter um modelo do TensorFlow

    O modelo deve ser pequeno o suficiente para caber no dispositivo de destino depois da conversão e só pode usar operações compatíveis. Se você quiser usar operações que não são compatíveis no momento, faça suas próprias implementações.

  2. Converter o modelo em um FlatBuffer do TensorFlow Lite

    Você converterá seu modelo no formato padrão do TensorFlow Lite usando o conversor do TensorFlow Lite. Também é possível gerar um modelo quantizado, já que eles são menores e mais eficientes na execução.

  3. Converter o FlatBuffer em uma matriz de bytes C

    Os modelos são mantidos na memória somente leitura do programa e fornecidos na forma de um arquivo C simples. As ferramentas padrão podem ser usadas para converter o FlatBuffer em uma matriz C.

  4. Integrar a biblioteca C++ do TensorFlow Lite para microcontroladores

    Escreva o código do microcontrolador para coletar dados, realize inferência usando a biblioteca C++ e aplique os resultados.

  5. Implantar no dispositivo

    Crie e implante o programa no seu dispositivo.

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
  • Incompatível com o treinamento

Próximas etapas

Leia os primeiros passos com microcontroladores para testar os aplicativos de exemplo e aprender a usar a API.