Visão geral da conversão do modelo

Os modelos de machine learning (ML) que você usa com o TensorFlow Lite são originalmente criados e treinados usando as bibliotecas e ferramentas principais do TensorFlow. Depois de criar um modelo com o núcleo do TensorFlow, você pode convertê-lo em um formato de modelo de ML menor e mais eficiente chamado modelo do TensorFlow Lite. Esta seção fornece orientação 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 do TensorFlow Lite pode levar alguns caminhos, dependendo do conteúdo do seu modelo de ML. Como a 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 seu modelo usa operações fora do conjunto suportado, você tem 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 no formato TensorFlow Lite. Observe que esta API está sujeita a alterações no modo experimental.

Avaliação de conversão

Avaliar seu modelo é um passo 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 seu modelo é adequado para uso em dispositivos móveis e de borda em termos do tamanho dos dados que o modelo usa, seus requisitos de processamento de hardware e o tamanho geral e a complexidade 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 da conversão para o TensorFlow Lite. Além disso, algumas operações com suporte do TensorFlow Lite têm requisitos de uso restritos por motivos de desempenho. Consulte o guia de compatibilidade do operador para determinar se seu modelo precisa ser refatorado para conversão.

Conversão de modelo

O conversor TensorFlow Lite usa 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 leva 3 flags principais (ou opções) 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 aplicado durante a conversão. A técnica de otimização mais comumente usada é a quanitizaçã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 do TensorFlow Lite padrão ou o ambiente de tempo de execução do Google Play Services para o TensorFlow Lite (Beta). Alguns casos de uso avançados requerem customização do ambiente de tempo de execução do modelo, que requer etapas adicionais no processo de conversão. Consulte a seção de ambiente de tempo 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 você tenha 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 tempo de execução personalizado para esse modelo.

Próximos passos