Visão geral da conversão de modelo

Os modelos de machine learning (ML) usados com o TensorFlow Lite são originalmente criados e treinados com as principais bibliotecas e ferramentas do TensorFlow. Depois de criar um modelo com o TensorFlow Core, é possível convertê-lo em um formato de modelo de ML menor e mais eficiente, chamado de modelo do TensorFlow Lite. Esta seção fornece orientações para converter seus modelos do TensorFlow para o formato do modelo do TensorFlow Lite.

Fluxo de trabalho de conversão

A conversão de modelos do TensorFlow para o formato do TensorFlow Lite pode levar alguns caminhos, dependendo do conteúdo do seu modelo de ML. Como primeira etapa, avalie seu modelo para determinar se ele pode ser diretamente convertido. Essa avaliação determina se o conteúdo do modelo é compatível com os ambientes de execução padrão do TensorFlow Lite com base nas operações do TensorFlow que ele usa. Se o modelo usa operações fora do conjunto compatível, você tem a opção de refatorá-lo ou usar técnicas avançadas de conversão.

O diagrama abaixo mostra as etapas avançadas para converter um modelo.

Fluxo de trabalho de conversão do TFLite

Figura 1. Fluxo de trabalho de conversão do TensorFlow Lite.

As seções a seguir descrevem o processo de avaliação e conversão de modelos para uso com o TensorFlow Lite.

Formatos de modelos de entrada

Você pode usar o conversor com os seguintes formatos de modelo de entrada:

É possível salvar os modelos de funções concretas e do Keras como um SavedModel e fazer a conversão usando o caminho recomendado.

Se você tiver um modelo Jax, poderá usar a API TFLiteConverter.experimental_from_jax para convertê-lo para o formato do TensorFlow Lite. Essa API está sujeita a mudanças no modo experimental.

Avaliação de conversão

Avaliar o modelo é uma etapa importante antes de tentar fazer a conversão. Ao avaliar, você quer determinar se o conteúdo do seu modelo é compatível com o formato do TensorFlow Lite. Determine também se o modelo é adequado para uso em dispositivos móveis e de borda em termos do tamanho dos dados que o modelo usa, dos requisitos de processamento de hardware e do tamanho e complexidade gerais do modelo.

Em muitos modelos, o conversor funciona imediatamente. No entanto, a biblioteca de operadores integrados do TensorFlow Lite é compatível com um subconjunto de operadores principais do TensorFlow, o que significa que alguns modelos podem precisar de outras etapas antes de converter para o TensorFlow Lite. Além disso, algumas operações compatíveis com o TensorFlow Lite têm requisitos de uso restritos por motivos de desempenho. Consulte o guia de compatibilidade de operadores para determinar se o modelo precisa ser refatorado para conversão.

Conversão de modelos

O conversor do TensorFlow Lite usa um modelo do TensorFlow e gera um modelo do TensorFlow Lite (um formato FlatBuffer otimizado identificado pela extensão de arquivo .tflite). É possível carregar um SavedModel ou converter diretamente um modelo criado no código.

O conversor usa três sinalizações (ou opções) principais que personalizam a conversão para seu modelo:

  1. As flags de compatibilidade permitem especificar se a conversão deve permitir operadores personalizados.
  2. As sinalizações de otimização permitem especificar o tipo de otimização que será aplicado durante a conversão. A técnica de otimização mais usada é a quanitização pós-treinamento.
  3. As sinalizações de metadados permitem adicionar metadados ao modelo convertido, o que facilita a criação de um código de wrapper específico da plataforma durante a implantação de modelos em dispositivos.

É possível converter o modelo usando a API Python ou a ferramenta de linha de comando. Consulte o guia Converter modelo do TF para ver instruções de como executar o conversor no modelo.

Normalmente, você converteria seu modelo para o ambiente de execução padrão do TensorFlow Lite ou o ambiente de execução do Google Play Services para o TensorFlow Lite (Beta). Alguns casos de uso avançados exigem a personalização do ambiente de execução do modelo, o que exige mais etapas no processo de conversão. Consulte a seção Ambiente de execução avançado da visão geral do Android para mais orientações.

Conversão avançada

Se ocorrerem erros ao executar o conversor no modelo, é provável que haja um problema de compatibilidade do operador. Nem todas as operações do TensorFlow são compatíveis com o TensorFlow Lite. Para contornar esses problemas, refatore o modelo ou use opções avançadas de conversão que permitem criar um modelo de formato do TensorFlow Lite modificado e um ambiente de execução personalizado para esse modelo.

Próximas etapas