O TensorFlow Lite é um conjunto de ferramentas que possibilita o machine learning no dispositivo, ajudando os desenvolvedores a executar modelos em dispositivos móveis, incorporados e de borda.
Principais recursos
- Otimizada para machine learning no dispositivo, abordando cinco restrições principais: latência (não há ida e volta para um servidor), privacidade (nenhum dado pessoal sai do dispositivo), conectividade (conexão com a Internet não é necessária), tamanho (tamanho reduzido do modelo e binário) e consumo de energia (inferência eficiente e falta de conexões de rede).
- Suporte a várias plataformas, incluindo dispositivos Android e iOS, Linux incorporado e microcontroladores.
- Suporte a diversas linguagens, incluindo Java, Swift, Objective-C, C++ e Python.
- Alto desempenho, com aceleração de hardware e otimização de modelos.
Fluxo de trabalho de desenvolvimento
O guia a seguir explica cada etapa do fluxo de trabalho e fornece links para mais instruções:
1. Gerar um modelo do TensorFlow Lite
Um modelo do TensorFlow Lite é representado em um formato portátil especial eficiente conhecido como FlatBuffers (identificado pela extensão de arquivo .tflite). Isso oferece várias vantagens em relação ao formato do modelo de buffer de protocolo do TensorFlow, como tamanho reduzido (tamanho pequeno de código) e inferência mais rápida (os dados são acessados diretamente sem uma etapa extra de análise/descompactação), o que permite que o TensorFlow Lite seja executado de maneira eficiente em dispositivos com recursos limitados de computação e memória.
Opcionalmente, um modelo do TensorFlow Lite pode incluir metadados que tenham uma descrição do modelo legível por humanos e dados legíveis por máquina para a geração automática de pipelines de pré e pós-processamento durante a inferência no dispositivo. Consulte Adicionar metadados para mais detalhes.
É possível gerar um modelo do TensorFlow Lite das seguintes maneiras:
Use um modelo atual do TensorFlow Lite:consulte os exemplos do TensorFlow Lite para escolher um modelo atual. Os modelos podem ou não conter metadados.
Converta um modelo do TensorFlow em um do TensorFlow Lite:use o TensorFlow Lite Converter para converter um modelo do TensorFlow em um do TensorFlow Lite. Durante a conversão, é possível aplicar otimizações, como a quantização, para reduzir o tamanho e a latência do modelo com pouca ou nenhuma perda de acurácia. Por padrão, nenhum modelo contém metadados.
2. Executar inferência
Inferência refere-se ao processo de execução de um modelo do TensorFlow Lite no dispositivo para fazer previsões com base nos dados de entrada. É possível executar a inferência das seguintes maneiras com base no tipo de modelo:
Modelos sem metadados: use a API TensorFlow Lite Interpreter. Compatível com várias plataformas e linguagens, como Java, Swift, C++, Objective-C e Python.
Modelos com metadados: é possível criar pipelines de inferência personalizados com a Biblioteca de Suporte do TensorFlow Lite. Em dispositivos Android, os usuários podem gerar wrappers de código automaticamente usando a Vinculação de modelos de ML do Android Studio ou o TensorFlow Lite Code Generator. Compatível apenas com Java (Android), enquanto Swift (iOS) e C++ ainda está em desenvolvimento.
Em dispositivos Android e iOS, é possível melhorar o desempenho usando a aceleração de hardware. Em qualquer plataforma, é possível usar um Delegado de GPU. No iOS, é possível usar o Delegado de ML principal. Para adicionar suporte a novos aceleradores de hardware, defina seu próprio delegado.
Começar
Consulte os guias a seguir de acordo com seu dispositivo de destino:
Android e iOS:confira os guias de início rápido do Android e do iOS.
Linux incorporado:explore o guia de início rápido do Python para dispositivos incorporados, como o Raspberry Pi e os dispositivos Coral com Edge TPU ou as instruções de criação em C++ para ARM.
Microcontroladores:conheça a biblioteca do TensorFlow Lite para microcontroladores para microcontroladores e DSPs que contêm apenas alguns kilobytes de memória.
Restrições técnicas
- Todos os modelos do TensorFlow não podem ser convertidos em modelos do TensorFlow Lite. Consulte Compatibilidade de operadores.