TensorFlow Lite para Android

O TensorFlow Lite permite executar modelos de machine learning (ML) do TensorFlow em seus aplicativos Android. O sistema TensorFlow Lite oferece ambientes de execução pré-construídos e personalizáveis ​​para executar modelos no Android de forma rápida e eficiente, incluindo opções de aceleração de hardware.

Roteiro de aprendizagem

Design de código Aprenda conceitos e design de código para criar aplicativos Android com TensorFlow Lite, continue lendo .
Início rápido do código Comece a codificar um aplicativo Android com o TensorFlow Lite imediatamente com o Guia de início rápido .
Modelos de ML Saiba mais sobre como escolher e usar modelos de ML com o TensorFlow Lite, consulte a documentação de modelos .

Modelos de aprendizado de máquina

O TensorFlow Lite usa modelos do TensorFlow que são convertidos em um formato de modelo de aprendizado de máquina menor, portátil e mais eficiente. Você pode usar modelos pré-construídos com o TensorFlow Lite no Android ou criar seus próprios modelos do TensorFlow e convertê-los para o formato TensorFlow Lite.

Esta página discute o uso de modelos de aprendizado de máquina já criados e não cobre a construção, o treinamento, o teste ou a conversão de modelos. Saiba mais sobre como escolher, modificar, criar e converter modelos de machine learning para o TensorFlow Lite na seção Modelos .

Execute modelos no Android

Um modelo do TensorFlow Lite executado em um aplicativo Android coleta dados, processa-os e gera uma previsão com base na lógica do modelo. Um modelo TensorFlow Lite requer um ambiente de tempo de execução especial para ser executado, e os dados transmitidos para o modelo devem estar em um formato de dados específico, chamado tensor . Quando um modelo processa os dados, conhecido como execução de uma inferência , ele gera resultados de previsão como novos tensores e os transmite ao aplicativo Android para que ele possa executar ações, como mostrar o resultado a um usuário ou executar lógica de negócios adicional.

Fluxo de execução funcional para modelos do TensorFlow Lite em aplicativos Android

Figura 1. Fluxo de execução funcional para modelos do TensorFlow Lite em aplicativos Android.

No nível de design funcional, seu aplicativo Android precisa dos seguintes elementos para executar um modelo do TensorFlow Lite:

  • Ambiente de execução do TensorFlow Lite para executar o modelo
  • Manipulador de entrada de modelo para transformar dados em tensores
  • Modele o manipulador de saída para receber tensores de resultados de saída e interpretá-los como resultados de previsão

As seções a seguir descrevem como as bibliotecas e ferramentas do TensorFlow Lite fornecem esses elementos funcionais.

Crie aplicativos com o TensorFlow Lite

Esta seção descreve o caminho recomendado e mais comum para implementar o TensorFlow Lite em seu aplicativo Android. Você deve prestar mais atenção às seções do ambiente de tempo de execução e das bibliotecas de desenvolvimento . Se você desenvolveu um modelo personalizado, revise a seção Caminhos de desenvolvimento avançados .

Opções de ambiente de tempo de execução

Existem várias maneiras de ativar um ambiente de tempo de execução para executar modelos em seu aplicativo Android. Estas são as opções preferidas:

Em geral, você deve usar o ambiente de execução fornecido pelo Google Play Services porque ele economiza mais espaço do que o ambiente padrão, pois carrega dinamicamente, mantendo o tamanho do aplicativo menor. O Google Play Services também usa automaticamente a versão mais recente e estável do ambiente de execução do TensorFlow Lite, oferecendo recursos adicionais e desempenho aprimorado ao longo do tempo. Se você oferece seu aplicativo em dispositivos que não incluem o Google Play Services ou precisa gerenciar de perto seu ambiente de execução de ML, use o tempo de execução padrão do TensorFlow Lite. Esta opção agrupa código adicional em seu aplicativo, permitindo que você tenha mais controle sobre o tempo de execução de ML em seu aplicativo, ao custo de aumentar o tamanho do download do aplicativo.

Você acessa esses ambientes de execução em seu aplicativo Android adicionando bibliotecas de desenvolvimento do TensorFlow Lite ao ambiente de desenvolvimento de aplicativos. Para obter informações sobre como usar os ambientes de tempo de execução padrão em seu aplicativo, consulte a próxima seção.

APIs e bibliotecas de desenvolvimento

Existem duas APIs principais que você pode usar para integrar modelos de machine learning do TensorFlow Lite ao seu aplicativo Android:

A API Interpreter fornece classes e métodos para executar inferências com modelos existentes do TensorFlow Lite. A API de tarefas do TensorFlow Lite envolve a API do interpretador e fornece uma interface de programação de nível superior para executar tarefas comuns de aprendizado de máquina no tratamento de dados visuais, de áudio e de texto. Você deve usar a Task API, a menos que descubra que ela não oferece suporte ao seu caso de uso específico.

Bibliotecas

Você pode acessar as APIs de tarefas ou a API de intérpretes usando os serviços do Google Play . Você também pode usar as bibliotecas independentes para tarefas do TensorFlow Lite ou o núcleo do TensorFlow Lite e as bibliotecas de suporte no seu aplicativo Android. Para obter detalhes de programação sobre o uso de bibliotecas e ambientes de execução do TensorFlow Lite, consulte Ferramentas de desenvolvimento para Android .

Obter modelos

A execução de um modelo em um aplicativo Android requer um modelo no formato TensorFlow Lite. Você pode usar modelos pré-construídos ou criar um com o TensorFlow e convertê-lo para o formato Lite. Para obter mais informações sobre como obter modelos para seu aplicativo Android, consulte a seção Modelos do TensorFlow Lite.

Lidar com dados de entrada

Quaisquer dados transmitidos para um modelo de ML devem ser um tensor com uma estrutura de dados específica, geralmente chamada de formato do tensor. Para processar dados com um modelo, o código do seu aplicativo deve transformar os dados de seu formato nativo, como imagem, texto ou dados de áudio, em um tensor no formato necessário para seu modelo.

A biblioteca de tarefas do TensorFlow Lite fornece lógica de manipulação de dados para transformar dados visuais, de texto e de áudio em tensores com o formato correto para serem processados ​​por um modelo do TensorFlow Lite.

Executar inferências

O processamento de dados por meio de um modelo para gerar um resultado de previsão é conhecido como execução de uma inferência . A execução de uma inferência em um aplicativo Android requer um ambiente de execução do TensorFlow Lite, um modelo e dados de entrada .

A velocidade com que um modelo pode gerar uma inferência em um determinado dispositivo depende do tamanho dos dados processados, da complexidade do modelo e dos recursos computacionais disponíveis, como memória e CPU, ou processadores especializados chamados aceleradores . Os modelos de aprendizado de máquina podem ser executados mais rapidamente nesses processadores especializados, como unidades de processamento gráfico (GPUs) e unidades de processamento de tensores (TPUs), usando drivers de hardware do TensorFlow Lite chamados delegados . Para obter mais informações sobre delegados e aceleração de hardware do processamento de modelo, consulte Visão geral da aceleração de hardware .

Lidar com resultados de saída

Os modelos geram resultados de previsão como tensores, que devem ser manipulados pelo seu aplicativo Android, executando uma ação ou exibindo um resultado ao usuário. Os resultados de saída do modelo podem ser tão simples quanto um número correspondente a um único resultado (0 = cachorro, 1 = gato, 2 = pássaro) para uma classificação de imagem, até resultados muito mais complexos, como múltiplas caixas delimitadoras para vários objetos classificados em um imagem, com classificações de confiança de previsão entre 0 e 1.

Caminhos de desenvolvimento avançados

Ao usar modelos mais sofisticados e personalizados do TensorFlow Lite, talvez seja necessário usar abordagens de desenvolvimento mais avançadas do que as descritas acima. As seções a seguir descrevem técnicas avançadas para executar modelos e desenvolvê-los para o TensorFlow Lite em aplicativos Android.

Ambientes de tempo de execução avançados

Além dos ambientes de execução padrão e do Google Play Services para TensorFlow Lite, há ambientes de execução adicionais que você pode usar com seu aplicativo Android. O uso mais provável para esses ambientes é se você tiver um modelo de machine learning que usa operações de ML que não são compatíveis com o ambiente de tempo de execução padrão do TensorFlow Lite.

O tempo de execução do TensorFlow Lite Flex permite incluir operadores específicos necessários para seu modelo. Como uma opção avançada para executar seu modelo, você pode criar o TensorFlow Lite para Android para incluir operadores e outras funcionalidades necessárias para executar seu modelo de machine learning do TensorFlow. Para obter mais informações, consulte Criar TensorFlow Lite para Android .

APIs C e C++

O TensorFlow Lite também fornece uma API para executar modelos usando C e C++. Se seu aplicativo usa o Android NDK , considere usar esta API. Você também pode considerar o uso desta API se quiser compartilhar código entre várias plataformas. Para obter mais informações sobre esta opção de desenvolvimento, consulte a página Ferramentas de desenvolvimento .

Execução de modelo baseado em servidor

Em geral, você deve executar modelos no seu aplicativo em um dispositivo Android para aproveitar a menor latência e melhorar a privacidade dos dados para seus usuários. No entanto, há casos em que executar um modelo em um servidor em nuvem, fora do dispositivo, é uma solução melhor. Por exemplo, se você tiver um modelo grande que não pode ser facilmente compactado até um tamanho que caiba nos dispositivos Android dos seus usuários ou que possa ser executado com desempenho razoável nesses dispositivos. Essa abordagem também pode ser sua solução preferida se o desempenho consistente do modelo em uma ampla variedade de dispositivos for prioridade máxima.

O Google Cloud oferece um conjunto completo de serviços para executar modelos de machine learning do TensorFlow. Para obter mais informações, consulte a página de produtos de IA e aprendizado de máquina do Google Cloud.

Desenvolvimento e otimização de modelo personalizado

Caminhos de desenvolvimento mais avançados provavelmente incluirão o desenvolvimento de modelos personalizados de aprendizado de máquina e a otimização desses modelos para uso em dispositivos Android. Se você planeja construir modelos personalizados, considere aplicar técnicas de quantização aos modelos para reduzir custos de memória e processamento. Para obter mais informações sobre como criar modelos de alto desempenho para uso com o TensorFlow Lite, consulte Práticas recomendadas de desempenho na seção Modelos.

Próximos passos