O TensorFlow Lite é um conjunto de ferramentas para machine learning no dispositivo que ajuda os desenvolvedores a executar modelos em dispositivos móveis, incorporados e de IoT.
Principais recursos
- Otimizado para machine learning no dispositivo ao abordar cinco restrições principais: latência (não há ida e volta para um servidor), privacidade (nenhum dado pessoal sai do dispositivo), conectividade (conectividade com a Internet não é necessária), tamanho (tamanho reduzido do modelo e do binário) e consumo de energia (inferência eficiente e falta de conexões de rede)
- Suporte a várias plataformas, inclusive dispositivos Android e iOS, Linux incorporado e microcontroladores
- Compatibilidade com diversas linguagens, incluindo Java, Swift, Objective-C, C++ e Python
- Alto desempenho com aceleração de hardware e otimização de modelos
- Exemplos completos para tarefas comuns de machine learning, como classificação de imagens, detecção de objetos, estimativa de poses, resposta a perguntas, classificação de texto, etc. em várias plataformas
Fluxo de trabalho de desenvolvimento
O guia a seguir aborda 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 aberto especial e eficiente conhecido como FlatBuffers, identificado pela extensão de arquivo .tflite. Isso oferece diversas vantagens sobre o formato do modelo buffer de protocolo do TensorFlow, como um tamanho reduzido (código menor) e uma inferência mais rápida (os dados são acessados diretamente em uma etapa adicional de análise/descompactação), o que permite ao TensorFlow Lite uma execução eficiente nos dispositivos com recursos limitados de computação e memória.
Como opção, os modelos do TensorFlow Lite podem incluir metadados que tenham uma descrição de 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 inferências no dispositivo. Confira mais detalhes sobre como adicionar metadados.
É possível gerar um modelo do TensorFlow Lite das seguintes maneiras:
Use um modelo existente do TensorFlow Lite: consulte os exemplos de TensorFlow Lite para escolher um modelo existente. Os modelos podem ou não conter metadados.
Crie um modelo do TensorFlow Lite: use o TensorFlow Lite Model Maker para criar um modelo com seu próprio conjunto de dados personalizado. Por padrão, todos os modelos contêm metadados.
Converta um modelo do TensorFlow em um do TensorFlow Lite: use o TensorFlow Lite Converter para converter modelos. Durante a conversão, você pode aplicar otimizações como a quantização para diminuir o tamanho e a latência do modelo com pouca ou nenhuma perda na acurácia. Por padrão, nenhum dos modelos contém metadados.
2. Executar inferência
A inferência é o 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. Ela é compatível com várias plataformas e linguagens como Java, Swift, C++, Objective-C e Python.
Modelos com metadados: você pode aproveitar as APIs prontas usando a TensorFlow Lite Task Library ou criar pipelines personalizados de inferência com a TensorFlow Lite Support Library. Em dispositivos Android, os usuários podem gerar automaticamente wrappers de código usando a vinculação de modelo de ML do Android Studio ou o TensorFlow Lite Code Generator. Compatível somente em Java (Android), e disponível em breve para Swift (iOS) e C++.
Nos dispositivos Android e iOS, é possível melhorar o desempenho usando a aceleração de hardware. Em qualquer uma das plataformas, você pode usar um delegado de GPU. No Android, é possível usar o delegado NNAPI para dispositivos mais novos ou o delegado Hexagon com os mais antigos. No iOS, é possível usar o delegado Core ML. Para adicionar suporte a novos aceleradores de hardware, defina seu próprio delegado.
Primeiros passos
Consulte os seguintes guias com base no dispositivo de destino:
Android e iOS: explore 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 dispositivos Coral com Edge TPU ou instruções de criação em C++ para ARM.
Microcontroladores: confira a biblioteca do TensorFlow Lite para microcontroladores se quiser microcontroladores e DSPs que contém somente alguns kilobytes de memória.
Restrições técnicas
Não é possível converter todos os modelos do TensorFlow em modelos do TensorFlow Lite. Saiba mais sobre a compatibilidade de operadores.
O treinamento no dispositivo não é compatível, mas está no nosso roteiro.