¿Tengo una pregunta? Conéctese con la comunidad en el Foro de visita del foro de TensorFlow

Compatibilidad con los operadores de TensorFlow Lite y TensorFlow

TensorFlow Lite admite una serie de operaciones de TensorFlow que se utilizan en modelos de inferencia comunes. A medida que las procesa el convertidor de optimización de TensorFlow Lite, esas operaciones se pueden elidir o fusionar, antes de que las operaciones admitidas se asignen a sus contrapartes de TensorFlow Lite.

Dado que la biblioteca de operadores incorporada de TensorFlow Lite solo admite una cantidad limitada de operadores de TensorFlow, no todos los modelos son convertibles. Incluso para las operaciones admitidas, a veces se esperan patrones de uso muy específicos, por razones de rendimiento. Esperamos expandir el conjunto de operaciones admitidas en futuras versiones de TensorFlow Lite.

La mejor manera de comprender cómo crear un modelo de TensorFlow que se pueda usar con TensorFlow Lite es considerar cuidadosamente cómo se convierten y optimizan las operaciones, junto con las limitaciones impuestas por este proceso.

Tipos admitidos

La mayoría de las operaciones de TensorFlow Lite tienen como objetivo la inferencia de punto flotante ( float32 ) y cuantizada ( uint8 , int8 ), pero muchas operaciones aún no lo hacen para otros tipos como tf.float16 y cadenas.

Además de usar una versión diferente de las operaciones, la otra diferencia entre los modelos de punto flotante y cuantificados es la forma en que se convierten. La conversión cuantificada requiere información de rango dinámico para tensores. Esto requiere una "cuantificación falsa" durante el entrenamiento del modelo, obtener información de rango a través de un conjunto de datos de calibración o realizar una estimación de rango "sobre la marcha". Ver cuantificación .

Operaciones y restricciones admitidas

TensorFlow Lite admite un subconjunto de operaciones de TensorFlow con algunas limitaciones. Para obtener una lista completa de operaciones y limitaciones, consulte la página de Operaciones de TF Lite .

Conversiones sencillas, plegado y fusión constantes

TensorFlow Lite puede procesar varias operaciones de TensorFlow aunque no tengan un equivalente directo. Este es el caso de las operaciones que pueden simplemente eliminarse del gráfico ( tf.identity ), reemplazarse por tensores ( tf.placeholder ) o fusionarse en operaciones más complejas ( tf.nn.bias_add ). Incluso algunas operaciones compatibles pueden eliminarse a veces mediante uno de estos procesos.

A continuación, se muestra una lista no exhaustiva de las operaciones de TensorFlow que generalmente se eliminan del gráfico:

Operaciones experimentales

Las siguientes operaciones de TensorFlow Lite están presentes, pero no están listas para modelos personalizados:

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