O Dia da Comunidade de ML é dia 9 de novembro! Junte-nos para atualização de TensorFlow, JAX, e mais Saiba mais

TensorFlow Lite e compatibilidade do operador TensorFlow

O TensorFlow Lite é compatível com várias operações do TensorFlow usadas em modelos de inferência comuns. À medida que são processadas pelo conversor de otimização TensorFlow Lite, essas operações podem ser eliminadas ou fundidas, antes que as operações compatíveis sejam mapeadas para suas contrapartes do TensorFlow Lite.

Como a biblioteca de operadores integrada do TensorFlow Lite só oferece suporte a um número limitado de operadores do TensorFlow, nem todos os modelos são conversíveis. Mesmo para operações com suporte, às vezes são esperados padrões de uso muito específicos, por motivos de desempenho. Esperamos expandir o conjunto de operações com suporte em versões futuras do TensorFlow Lite.

A melhor maneira de entender como construir um modelo do TensorFlow que pode ser usado com o TensorFlow Lite é considerar cuidadosamente como as operações são convertidas e otimizadas, junto com as limitações impostas por esse processo.

Tipos Suportados

A maioria das operações do TensorFlow Lite tem como alvo a inferência de ponto flutuante ( float32 ) e quantizada ( uint8 , int8 ), mas muitas operações ainda não o fazem para outros tipos, como tf.float16 e strings.

Além de usar versões diferentes das operações, a outra diferença entre modelos de ponto flutuante e quantizados é a maneira como eles são convertidos. A conversão quantizada requer informações de faixa dinâmica para tensores. Isso requer uma "quantização falsa" durante o treinamento do modelo, obtenção de informações de alcance por meio de um conjunto de dados de calibração ou estimativa de alcance "em tempo real". Veja quantização .

Operações com suporte e restrições

O TensorFlow Lite é compatível com um subconjunto de operações do TensorFlow com algumas limitações. Para uma lista completa de operações e limitações, consulte a página TF Lite Ops .

Conversões diretas, dobra e fusão constantes

Várias operações do TensorFlow podem ser processadas pelo TensorFlow Lite, embora não tenham equivalente direto. Esse é o caso de operações que podem ser simplesmente removidas do gráfico ( tf.identity ), substituídas por tensores ( tf.placeholder ) ou fundidas em operações mais complexas ( tf.nn.bias_add ). Mesmo algumas operações com suporte às vezes podem ser removidas por meio de um desses processos.

Esta é uma lista não exaustiva de operações do TensorFlow que geralmente são removidas do gráfico:

Operações Experimentais

As seguintes operações do TensorFlow Lite estão presentes, mas não estão prontas para modelos personalizados:

  • CALL
  • CONCAT_EMBEDDINGS
  • CUSTOM
  • EMBEDDING_LOOKUP_SPARSE
  • HASHTABLE_LOOKUP
  • LSH_PROJECTION
  • SKIP_GRAM
  • SVDF