TensorFlow Lite para Android

TensorFlow Lite te permite ejecutar modelos de aprendizaje automático (AA) de TensorFlow en tus apps para Android. El sistema de TensorFlow Lite proporciona entornos de ejecución predefinidos y personalizables para ejecutar modelos en Android de forma rápida y eficiente, incluidas opciones de aceleración de hardware.

Modelos de aprendizaje automático

TensorFlow Lite usa modelos de TensorFlow que se convierten en un formato de modelo de aprendizaje automático más pequeño, portátil y más eficiente. Puedes usar modelos creados previamente con TensorFlow Lite en Android o crear tus propios modelos de TensorFlow y convertirlos al formato de TensorFlow Lite.

En esta página, se analiza el uso de modelos de aprendizaje automático ya compilados y no se abarca la compilación, el entrenamiento, la prueba ni la conversión de modelos. Obtén más información sobre cómo seleccionar, modificar, compilar y convertir modelos de aprendizaje automático para TensorFlow Lite en la página Modelos.

Cómo ejecutar modelos en Android

Un modelo de TensorFlow Lite que se ejecuta dentro de una app para Android recibe datos, los procesa y genera una predicción basada en la lógica del modelo. Un modelo de TensorFlow Lite requiere un entorno de ejecución especial para ejecutarse, y los datos que se pasan al modelo deben tener un formato de datos específico, denominado tensor. Cuando un modelo procesa los datos, lo que se conoce como ejecución de una inferencia, genera resultados de predicción como tensores nuevos y los pasa a la app para Android para que pueda realizar acciones, como mostrar el resultado a un usuario o ejecutar lógica empresarial adicional.

Flujo de ejecución funcional de los modelos de TensorFlow Lite en apps para Android

Figura 1: Flujo de ejecución funcional de los modelos de TensorFlow Lite en apps para Android

En el nivel del diseño funcional, tu app para Android necesita los siguientes elementos para ejecutar un modelo de TensorFlow Lite:

  • Entorno de ejecución de TensorFlow Lite para ejecutar el modelo
  • Controlador de entrada del modelo para transformar datos en tensores
  • Controlador de salida del modelo para recibir tensores de resultados de salida y, luego, interpretarlos como resultados de predicción

En las siguientes secciones, se describe cómo las bibliotecas y herramientas de TensorFlow Lite proporcionan estos elementos funcionales.

Crea apps con TensorFlow Lite

En esta sección, se describe la ruta recomendada y más común para implementar TensorFlow Lite en tu app para Android. Debes prestar mucha atención a las secciones del entorno de tiempo de ejecución y de las bibliotecas de desarrollo. Si desarrollaste un modelo personalizado, asegúrate de revisar la sección Rutas de desarrollo avanzadas.

Opciones del entorno de ejecución

Existen varias formas de habilitar un entorno de ejecución para ejecutar modelos en tu app para Android. Estas son las opciones preferidas:

En general, debes usar el entorno de ejecución que proporcionan los Servicios de Google Play, ya que es más eficiente en términos de espacio que el entorno estándar, ya que se carga de forma dinámica y mantiene el tamaño de tu app más pequeño. Los Servicios de Google Play también usan automáticamente la versión estable más reciente del entorno de ejecución de TensorFlow Lite, lo que te brinda funciones adicionales y un mejor rendimiento con el paso del tiempo. Si ofreces tu app en dispositivos que no incluyen los Servicios de Google Play o si necesitas administrar de cerca tu entorno de ejecución de AA, debes usar el entorno de ejecución estándar de TensorFlow Lite. Esta opción empaqueta código adicional en la app, lo que te permite tener más control sobre el tiempo de ejecución de AA en tu app a costa de aumentar su tamaño de descarga.

A fin de acceder a estos entornos de ejecución en tu app para Android, agrega las bibliotecas de desarrollo de TensorFlow Lite al entorno de desarrollo de tu app. Si deseas obtener información para usar los entornos de ejecución estándar en tu app, consulta la siguiente sección.

Bibliotecas

Puedes acceder a la API de intérprete con los Servicios de Google Play. Puedes usar las bibliotecas core y support de TensorFlow Lite en tu app para Android. Si quieres obtener detalles de programación sobre el uso de las bibliotecas y los entornos de ejecución de TensorFlow Lite, consulta Herramientas de desarrollo para Android.

Obtén modelos

La ejecución de un modelo en una app para Android requiere un modelo en formato TensorFlow Lite. Puedes usar modelos compilados previamente o compilar uno con TensorFlow y convertirlo al formato Lite. Si quieres obtener más información sobre cómo obtener modelos para tu app para Android, consulta la página Modelos de TensorFlow Lite.

Cómo controlar los datos de entrada

Cualquier dato que pases a un modelo de AA debe ser un tensor con una estructura de datos específica, que suele llamarse forma del tensor. Para procesar datos con un modelo, el código de tu app debe transformar los datos de su formato nativo, como datos de imagen, texto o audio, en un tensor en la forma requerida para tu modelo.

Ejecutar inferencias

El procesamiento de datos a través de un modelo para generar un resultado de predicción se conoce como ejecutar una inferencia. La ejecución de una inferencia en una app para Android requiere un entorno de ejecución de TensorFlow Lite, un model y datos de entrada.

La velocidad a la que un modelo puede generar una inferencia en un dispositivo en particular depende del tamaño de los datos procesados, la complejidad del modelo y los recursos de procesamiento disponibles, como la memoria y la CPU, o los procesadores especializados llamados aceleradores. Los modelos de aprendizaje automático pueden ejecutarse más rápido en estos procesadores especializados, como las unidades de procesamiento gráfico (GPU) y las unidades de procesamiento tensorial (TPU), con los controladores de hardware de TensorFlow Lite llamados delegados. Para obtener más información sobre los delegados y la aceleración de hardware del procesamiento de modelos, consulta Descripción general de la aceleración de hardware.

Cómo controlar los resultados de salida

Los modelos generan resultados de predicción como tensores, que tu app para Android debe controlar cuando realiza una acción o le muestra un resultado al usuario. Los resultados de los resultados del modelo pueden ser tan simples como un número que corresponda a un solo resultado (0 = perro, 1 = gato, 2 = ave) para una clasificación de imágenes, hasta resultados mucho más complejos, como varios cuadros de límite para varios objetos clasificados en una imagen, con calificaciones de confianza de predicción de entre 0 y 1.

Rutas de desarrollo avanzadas

Cuando uses modelos más sofisticados y personalizados de TensorFlow Lite, es posible que debas usar enfoques de desarrollo más avanzados que los que se describieron anteriormente. En las siguientes secciones, se describen técnicas avanzadas para ejecutar modelos y desarrollarlos con TensorFlow Lite en apps para Android.

Entornos de ejecución avanzados

Además de los entornos de ejecución estándar y de los Servicios de Google Play para TensorFlow Lite, existen otros entornos de ejecución que puedes usar con tu app para Android. El uso más probable para estos entornos es si tienes un modelo de aprendizaje automático que usa operaciones de AA que no son compatibles con el entorno de ejecución estándar de TensorFlow Lite.

El entorno de ejecución flexible de TensorFlow Lite te permite incluir los operadores específicos necesarios para tu modelo. Como opción avanzada para ejecutar tu modelo, puedes compilar TensorFlow Lite para Android a fin de incluir operadores y otras funcionalidades necesarias para ejecutar tu modelo de aprendizaje automático de TensorFlow. Para obtener más información, consulta Cómo compilar TensorFlow Lite para Android.

APIs de C y C++

TensorFlow Lite también proporciona una API para ejecutar modelos con C y C++. Si tu app usa el NDK de Android, deberías considerar usar esta API. También te recomendamos que consideres usar esta API si deseas poder compartir código entre varias plataformas. Si deseas obtener más información sobre esta opción de desarrollo, consulta la página Herramientas de desarrollo.

Ejecución de modelos basado en servidores

En general, debes ejecutar modelos en tu app en un dispositivo Android para aprovechar la latencia más baja y la privacidad de datos mejorada para tus usuarios. Sin embargo, hay casos en los que ejecutar un modelo en un servidor en la nube, fuera del dispositivo, es una mejor solución. Por ejemplo, si tienes un modelo grande que no se comprime con facilidad en un tamaño que se adapta a los dispositivos Android de tus usuarios o que se puede ejecutar con un rendimiento razonable en esos dispositivos. Este enfoque también puede ser la solución preferida si el rendimiento coherente del modelo en una amplia gama de dispositivos es la prioridad principal.

Google Cloud ofrece un kit completo de servicios para ejecutar modelos de aprendizaje automático de TensorFlow. Para obtener más información, consulta la página Productos de IA y aprendizaje automático de Google Cloud.

Desarrollo y optimización de modelos personalizados

Es probable que las rutas de desarrollo más avanzadas incluyan el desarrollo de modelos de aprendizaje automático personalizados y la optimización de esos modelos para su uso en dispositivos Android. Si planeas compilar modelos personalizados, asegúrate de aplicar técnicas de cuantización a los modelos para reducir los costos de memoria y procesamiento. Si quieres obtener más información sobre cómo compilar modelos de alto rendimiento para usar con TensorFlow Lite, consulta Prácticas recomendadas de rendimiento en la sección Modelos.