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 predefinidos e personalizáveis ​​para executar modelos no Android de forma rápida e eficiente, incluindo opções para aceleração de hardware.

Roteiro de aprendizagem

Aprenda conceitos e design de código para criar aplicativos Android com o TensorFlow Lite, continue lendo .
Comece a codificar um aplicativo Android com o TensorFlow Lite imediatamente com o Quickstart .
Saiba mais sobre como escolher e usar modelos de ML com o TensorFlow Lite, consulte os documentos 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é-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 aprendizado de máquina já criados e não abrange a criação, treinamento, teste ou conversão de modelos. Saiba mais sobre como selecionar, modificar, criar e converter modelos de machine learning para o TensorFlow Lite na seção Modelos .

Executar modelos no Android

Um modelo do TensorFlow Lite executado em um aplicativo Android recebe dados, processa os dados e gera uma previsão com base na lógica do modelo. Um modelo do TensorFlow Lite requer um ambiente de tempo de execução especial para ser executado, e os dados que são passados ​​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 passa para o aplicativo Android para que ele possa realizar 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 do design funcional, seu aplicativo Android precisa dos seguintes elementos para executar um modelo do TensorFlow Lite:

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

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 de ambiente de tempo de execução e bibliotecas de desenvolvimento . Se você desenvolveu um modelo personalizado, certifique-se de revisar a seção Caminhos de desenvolvimento avançados .

Opções do ambiente de execução

Há várias maneiras de habilitar 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 tempo de execução padrão do TensorFlow Lite, pois esse é o ambiente mais versátil para executar modelos no Android. O ambiente de tempo de execução fornecido pelos serviços do Google Play é mais conveniente e eficiente em termos de espaço do que o ambiente padrão, pois é carregado dos recursos do Google Play e não agrupado em seu aplicativo. Alguns casos de uso avançados requerem customização do ambiente de tempo de execução do modelo, que é descrito na seção Ambientes de tempo de execução avançados .

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

APIs e bibliotecas de desenvolvimento

Há duas APIs principais que você pode usar para integrar os modelos de aprendizado de máquina do TensorFlow Lite ao seu aplicativo Android:

A API do 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 Interpreter e fornece uma interface de programação de nível superior para realizar tarefas comuns de aprendizado de máquina ao lidar com dados visuais, de áudio e de texto. Você deve usar a API de tarefas, a menos que descubra que ela não oferece suporte ao seu caso de uso específico.

Bibliotecas

Você pode acessar a API de tarefas incluindo a Biblioteca de tarefas do TensorFlow Lite em seu aplicativo Android. A biblioteca Task também inclui as classes e métodos da API do Interpreter, se você precisar deles.

Se quiser usar apenas a API do Interpreter, você pode incluir a biblioteca TensorFlow Lite . Como alternativa, você pode incluir a biblioteca de serviços do Google Play para o TensorFlow Lite e acessar a API do intérprete por meio dos serviços do Google Play, sem agrupar uma biblioteca separada em seu aplicativo.

A biblioteca de suporte do TensorFlow Lite também está disponível para fornecer funcionalidades adicionais para gerenciar dados para modelos, metadados de modelo e resultados de inferência de modelo.

Para detalhes de programação sobre como usar bibliotecas e ambientes de tempo 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é-criados 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.

Manipular dados de entrada

Qualquer dado que você passar para um modelo de ML deve ser um tensor com uma estrutura de dados específica, geralmente chamada de forma do tensor. Para processar dados com um modelo, o código do aplicativo deve transformar os dados de seu formato nativo, como dados de imagem, texto ou áudio, em um tensor na forma necessária 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 a forma correta para serem processados ​​por um modelo do TensorFlow Lite.

Executar inferências

Processar dados por meio de um modelo para gerar um resultado de previsão é conhecido como executar uma inferência . A execução de uma inferência em um aplicativo Android requer um ambiente de tempo 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 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 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 tensor (TPUs), usando drivers de hardware TensorFlow Lite chamados delegates . Para obter mais informações sobre delegados e aceleração de hardware do processamento de modelo, consulte a 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 realizando uma ação ou exibindo um resultado para o 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 várias 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, pode ser 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 tempo de execução padrão e dos serviços do Google Play para o TensorFlow Lite, há ambientes de tempo 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.

  • Tempo de execução flexível para TensorFlow Lite
  • Tempo de execução do TensorFlow Lite personalizado

O runtime do TensorFlow Lite Flex permite incluir operadores específicos necessários para o 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 aprendizado de máquina do TensorFlow. Para obter mais informações, consulte Compilar o 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 usar essa API se quiser compartilhar código entre várias plataformas. Para obter 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, você deve executar modelos em seu aplicativo em um dispositivo Android para aproveitar a latência mais baixa e a privacidade de dados aprimorada 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 seja compactado facilmente para um tamanho que caiba nos dispositivos Android de seus usuários ou 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 pacote completo de serviços para executar modelos de machine learning do TensorFlow. Para obter mais informações, consulte a página de produtos de machine learning e IA do Google Cloud.

Desenvolvimento e otimização de modelos personalizados

Caminhos de desenvolvimento mais avançados provavelmente incluirão o desenvolvimento de modelos de aprendizado de máquina personalizados e a otimização desses modelos para uso em dispositivos Android. Se você planeja construir modelos personalizados, certifique-se de considerar a aplicação de técnicas de quantização aos modelos para reduzir os 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