TensorFlow Lite para Android

O TensorFlow Lite permite executar modelos de machine learning (ML) do TensorFlow nos seus apps Android. O sistema do TensorFlow Lite oferece ambientes de execução pré-criados e personalizáveis para executar modelos no Android de maneira rápida e eficiente, incluindo opções de aceleração de hardware.

Modelos de machine learning

O TensorFlow Lite usa modelos do TensorFlow que são convertidos em um formato de modelo de machine learning menor, portátil e mais eficiente. É possível usar modelos pré-criados com o TensorFlow Lite no Android ou criar seus próprios modelos do TensorFlow e convertê-los para o formato do TensorFlow Lite.

Esta página discute o uso de modelos de machine learning já criados, mas não abrange a criaçã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 página Modelos.

Executar modelos no Android

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

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

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

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

  • Ambiente de execução do TensorFlow Lite para executar o modelo
  • Gerenciador de entrada do modelo para transformar dados em tensores
  • Gerenciador de saída do modelo para receber tensores de resultado 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.

Criar apps com o TensorFlow Lite

Esta seção descreve o caminho mais comum e recomendado para implementar o TensorFlow Lite no seu app Android. Preste mais atenção às seções Ambiente de execução e Bibliotecas de desenvolvimento. Se você desenvolveu um modelo personalizado, revise a seção Caminhos de desenvolvimento avançados.

Opções de ambiente de execução

Há várias maneiras de ativar um ambiente de execução para executar modelos no seu app Android. Estas são as opções preferidas:

Em geral, você precisa usar o ambiente de execução fornecido pelo Google Play Services porque ele é mais eficiente em termos de espaço do que o ambiente padrão, já que é carregado dinamicamente, mantendo o app menor. O Google Play Services também usa automaticamente a versão estável mais recente do ambiente de execução do TensorFlow Lite, o que oferece mais recursos e melhoria no desempenho ao longo do tempo. Se você oferece seu app em dispositivos que não incluem o Google Play Services ou precisa gerenciar de perto o ambiente de execução de ML, use o ambiente de execução padrão do TensorFlow Lite. Essa opção empacota mais código no app, permitindo que você tenha mais controle sobre o ambiente de execução de ML no app, mas aumenta o tamanho do download.

Acesse esses ambientes de execução no seu app Android adicionando bibliotecas de desenvolvimento do TensorFlow Lite ao ambiente de desenvolvimento de apps. Para mais informações sobre como usar os ambientes de execução padrão no seu app, consulte a próxima seção.

Bibliotecas

Você pode acessar a API Interpreter usando o Google Play Services. Você pode usar as bibliotecas principais e de suporte do TensorFlow Lite no seu app Android. Para detalhes de programação sobre como usar as bibliotecas do TensorFlow Lite e os ambientes de execução, consulte Ferramentas de desenvolvimento para Android.

Extrair modelos

A execução de um modelo em um app Android requer um modelo no formato TensorFlow Lite. É possível usar modelos pré-criados ou criar um com o TensorFlow e convertê-lo para o formato Lite. Para mais informações sobre como conseguir modelos para seu app Android, consulte a página Modelos do TensorFlow Lite.

Processar dados de entrada

Todos os dados transmitidos para um modelo de ML precisam 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 app precisa transformar dados do formato nativo, como imagem, texto ou dados de áudio, em um tensor na forma necessária para seu modelo.

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 app Android requer um ambiente de execução do TensorFlow Lite, um model e dados de entrada.

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

Gerenciar os resultados de saída

Os modelos geram resultados de previsão como tensores, que precisam ser processados pelo app Android executando ações ou exibindo um resultado para o usuário. Os resultados da saída do modelo podem ser simples, como um número correspondente a um único resultado (0 = cachorro, 1 = gato, 2 = pássaro) para uma classificação de imagem ou resultados muito mais complexos, como várias caixas delimitadoras para vários objetos classificados em uma 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 e desenvolver modelos para o TensorFlow Lite em apps Android.

Ambientes de execução avançados

Além dos ambientes de execução padrão e do Google Play Services para o TensorFlow Lite, existem outros que podem ser usados com seu app Android. O uso mais provável para esses ambientes é se você tiver um modelo de machine learning que use operações de ML que não são compatíveis com o ambiente de execução padrão do TensorFlow Lite.

O ambiente de execução flexível do TensorFlow Lite permite incluir operadores específicos necessários para o modelo. Como opção avançada para executar o modelo, é possível criar o TensorFlow Lite para Android a fim de incluir operadores e outras funcionalidades necessárias para executar seu modelo de machine learning do TensorFlow. Para mais informações, consulte Criar o TensorFlow Lite para Android.

APIs C e C++

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

Execução de modelo baseado em servidor

Em geral, execute modelos no app em um dispositivo Android para aproveitar a latência menor e a privacidade de dados aprimorada para os usuários. No entanto, há casos em que executar um modelo em um servidor na nuvem, fora do dispositivo, é uma solução melhor. Por exemplo, se você tem um modelo grande que não é compactado facilmente para um tamanho que se ajuste aos dispositivos Android dos usuários ou que possa ser executado com desempenho razoável nesses dispositivos. Essa abordagem também pode ser a solução preferida se o desempenho consistente do modelo em uma grande variedade de dispositivos for a prioridade máxima.

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

Desenvolvimento e otimização de modelos personalizados

Caminhos de desenvolvimento mais avançados provavelmente incluirão o desenvolvimento de modelos personalizados de machine learning e a otimização desses modelos para uso em dispositivos Android. Se você planejar criar modelos personalizados, aplique técnicas de quantização a modelos para reduzir os custos de memória e processamento. Para 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".