Preguntas frecuentes

Si no encuentra una respuesta a su pregunta aquí, consulte nuestra documentación detallada sobre el tema o presente un problema de GitHub .

Conversión de modelo

¿Qué formatos son compatibles para la conversión de TensorFlow a TensorFlow Lite?

Los formatos admitidos se enumeran aquí

¿Por qué algunas operaciones no están implementadas en TensorFlow Lite?

Para mantener TFLite liviano, solo ciertos operadores TF (enumerados en la lista de permitidos ) son compatibles con TFLite.

¿Por qué mi modelo no se convierte?

Dado que la cantidad de operaciones de TensorFlow Lite es menor que la de TensorFlow, es posible que algunos modelos no puedan convertirse. Algunos errores comunes se enumeran aquí .

Para problemas de conversión no relacionados con operaciones faltantes u operaciones de flujo de control, busque nuestros problemas de GitHub o presente uno nuevo .

¿Cómo compruebo que un modelo TensorFlow Lite se comporta igual que el modelo TensorFlow original?

La mejor manera de probar es comparar las salidas de los modelos TensorFlow y TensorFlow Lite para las mismas entradas (datos de prueba o entradas aleatorias) como se muestra aquí .

¿Cómo determino las entradas/salidas para el búfer del protocolo GraphDef?

La forma más fácil de inspeccionar un gráfico desde un archivo .pb es usar Netron , un visor de código abierto para modelos de aprendizaje automático.

Si Netron no puede abrir el gráfico, puede probar la herramienta resume_graph .

Si la herramienta resume_graph arroja un error, puede visualizar GraphDef con TensorBoard y buscar las entradas y salidas en el gráfico. Para visualizar un archivo .pb , use el script import_pb_to_tensorboard.py como se muestra a continuación:

python import_pb_to_tensorboard.py --model_dir <model path> --log_dir <log dir path>

¿Cómo inspecciono un archivo .tflite ?

Netron es la forma más fácil de visualizar un modelo de TensorFlow Lite.

Si Netron no puede abrir su modelo de TensorFlow Lite, puede probar el script visualize.py en nuestro repositorio.

Si está utilizando TF 2.5 o una versión posterior

python -m tensorflow.lite.tools.visualize model.tflite visualized_model.html

De lo contrario, puede ejecutar este script con Bazel

bazel run //tensorflow/lite/tools:visualize model.tflite visualized_model.html

Mejoramiento

¿Cómo reduzco el tamaño de mi modelo TensorFlow Lite convertido?

La cuantificación posterior al entrenamiento se puede usar durante la conversión a TensorFlow Lite para reducir el tamaño del modelo. La cuantificación posterior al entrenamiento cuantifica los pesos a 8 bits de precisión desde el punto flotante y los descuantifica durante el tiempo de ejecución para realizar cálculos de punto flotante. Sin embargo, tenga en cuenta que esto podría tener algunas implicaciones de precisión.

Si volver a entrenar el modelo es una opción, considere el entrenamiento con reconocimiento de cuantización . Sin embargo, tenga en cuenta que el entrenamiento consciente de la cuantificación solo está disponible para un subconjunto de arquitecturas de redes neuronales convolucionales.

Para obtener una comprensión más profunda de los diferentes métodos de optimización, consulte Optimización de modelos .

¿Cómo optimizo el rendimiento de TensorFlow Lite para mi tarea de aprendizaje automático?

El proceso de alto nivel para optimizar el rendimiento de TensorFlow Lite se parece a esto:

  • Asegúrese de tener el modelo correcto para la tarea. Para la clasificación de imágenes, consulte TensorFlow Hub .
  • Ajustar el número de hilos. Muchos operadores de TensorFlow Lite admiten núcleos de subprocesos múltiples. Puede usar SetNumThreads() en la API de C++ para hacer esto. Sin embargo, el aumento de subprocesos da como resultado una variabilidad del rendimiento según el entorno.
  • Utilice aceleradores de hardware. TensorFlow Lite admite la aceleración de modelos para hardware específico mediante delegados. Consulte nuestra guía de delegados para obtener información sobre qué aceleradores son compatibles y cómo usarlos con su modelo en el dispositivo.
  • Modelo de perfil (avanzado). La herramienta de evaluación comparativa Tensorflow Lite tiene un generador de perfiles integrado que puede mostrar estadísticas por operador. Si sabe cómo puede optimizar el rendimiento de un operador para su plataforma específica, puede implementar un operador personalizado .

Para obtener una discusión más detallada sobre cómo optimizar el rendimiento, eche un vistazo a Mejores prácticas .