Visão geral da conversão de modelo

Os modelos de machine learning (ML) que você usa com o TensorFlow Lite são originalmente criados e treinados usando as principais bibliotecas e ferramentas do TensorFlow. Depois de criar um modelo com o núcleo do TensorFlow, você poderá convertê-lo em um formato de modelo de ML menor e mais eficiente, chamado modelo TensorFlow Lite. Esta seção fornece orientações para converter seus modelos do TensorFlow para o formato de modelo do TensorFlow Lite.

Fluxo de trabalho de conversão

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

O diagrama abaixo mostra as etapas de alto nível na conversão de um modelo.

Fluxo de trabalho de conversão 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 modelo de entrada

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

Você pode salvar os modelos de função Keras e concreto como um SavedModel e converter usando o caminho recomendado.

Se você tiver um modelo Jax, poderá usar a API TFLiteConverter.experimental_from_jax para convertê-lo para o formato TensorFlow Lite. Observe que esta API está sujeita a alterações durante o modo experimental.

Avaliação de conversão

Avaliar seu modelo é uma etapa importante antes de tentar convertê-lo. Ao avaliar, você deseja determinar se o conteúdo do seu modelo é compatível com o formato TensorFlow Lite. Você também deve determinar se o seu 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 geral do modelo.

Para muitos modelos, o conversor deve funcionar imediatamente. No entanto, a biblioteca de operadores integrada do TensorFlow Lite oferece suporte a um subconjunto de operadores principais do TensorFlow, o que significa que alguns modelos podem precisar de etapas adicionais antes de serem convertidos 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 do operador para determinar se o seu modelo precisa ser refatorado para conversão.

Conversão de modelo

O conversor TensorFlow Lite pega um modelo TensorFlow e gera um modelo TensorFlow Lite (um formato FlatBuffer otimizado identificado pela extensão de arquivo .tflite ). Você pode carregar um SavedModel ou converter diretamente um modelo criado em código.

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

  1. Os sinalizadores de compatibilidade permitem especificar se a conversão deve permitir operadores personalizados.
  2. Os sinalizadores de otimização permitem especificar o tipo de otimização a ser aplicada durante a conversão. A técnica de otimização mais comumente usada é a quantização pós-treinamento .
  3. Os sinalizadores de metadados permitem adicionar metadados ao modelo convertido, o que facilita a criação de código wrapper específico da plataforma ao implantar modelos em dispositivos.

Você pode converter seu modelo usando a API Python ou a ferramenta de linha de comando . Consulte o guia do modelo Convert TF para obter instruções passo a passo sobre como executar o conversor em seu modelo.

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

Conversão avançada

Se você encontrar erros ao executar o conversor em seu modelo, é mais 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. Você pode contornar esses problemas refatorando seu modelo ou usando opções de conversão avançadas que permitem criar um modelo de formato TensorFlow Lite modificado e um ambiente de execução personalizado para esse modelo.

Próximos passos