TensorFlow Lite para Android

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

Hoja de ruta de aprendizaje

diseño de código Aprenda conceptos y diseño de código para crear aplicaciones de Android con TensorFlow Lite, simplemente siga leyendo .
Código de inicio rápido Comience a codificar una aplicación de Android con TensorFlow Lite de inmediato con el Inicio rápido .
Modelos de aprendizaje automático Obtenga información sobre cómo elegir y usar modelos de aprendizaje automático con TensorFlow Lite; consulte la documentación de Modelos .

Modelos de aprendizaje automático

TensorFlow Lite utiliza modelos de TensorFlow que se convierten a un formato de modelo de aprendizaje automático más pequeño, portátil y más eficiente. Puede usar modelos prediseñados con TensorFlow Lite en Android o crear sus propios modelos de TensorFlow y convertirlos al formato TensorFlow Lite.

Esta página analiza el uso de modelos de aprendizaje automático ya creados y no cubre la creación, capacitación, prueba o conversión de modelos. Obtenga más información sobre cómo seleccionar, modificar, crear y convertir modelos de aprendizaje automático para TensorFlow Lite en la sección Modelos .

Ejecutar modelos en Android

Un modelo de TensorFlow Lite que se ejecuta dentro de una aplicación de Android toma 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 poder ejecutarse, y los datos que se pasan al modelo deben estar en un formato de datos específico, llamado tensor . Cuando un modelo procesa los datos, lo que se conoce como ejecución de una inferencia , genera resultados de predicción como nuevos tensores y los pasa a la aplicación de Android para que pueda tomar medidas, como mostrar el resultado a un usuario o ejecutar lógica de negocios adicional.

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

Figura 1. Flujo de ejecución funcional para modelos de TensorFlow Lite en aplicaciones de Android.

A nivel de diseño funcional, su aplicación de Android necesita los siguientes elementos para ejecutar un modelo de TensorFlow Lite:

  • Entorno de ejecución de TensorFlow Lite para ejecutar el modelo
  • Modelo de controlador de entrada para transformar datos en tensores.
  • Modele el controlador de salida para recibir tensores de resultados de salida e interpretarlos como resultados de predicción.

Las siguientes secciones describen cómo las bibliotecas y herramientas de TensorFlow Lite proporcionan estos elementos funcionales.

Cree aplicaciones con TensorFlow Lite

Esta sección describe la ruta recomendada y más común para implementar TensorFlow Lite en su aplicación de Android. Debe prestar más atención a las secciones del entorno de ejecución y de las bibliotecas de desarrollo . Si ha desarrollado un modelo personalizado, asegúrese de revisar la sección Rutas de desarrollo avanzadas .

Opciones del entorno de ejecución

Hay varias formas de habilitar un entorno de ejecución para ejecutar modelos en su aplicación de Android. Estas son las opciones preferidas:

En general, debe utilizar el entorno de ejecución proporcionado por los servicios de Google Play porque ocupa más espacio que el entorno estándar, ya que se carga dinámicamente, lo que mantiene el tamaño de su aplicación más pequeño. Los servicios de Google Play también utilizan automáticamente la versión estable más reciente del tiempo de ejecución de TensorFlow Lite, lo que le brinda funciones adicionales y un rendimiento mejorado con el tiempo. Si ofrece su aplicación en dispositivos que no incluyen los servicios de Google Play o necesita administrar de cerca su entorno de ejecución de ML, entonces debe usar el tiempo de ejecución estándar de TensorFlow Lite. Esta opción incluye código adicional en su aplicación, lo que le permite tener más control sobre el tiempo de ejecución de ML en su aplicación a costa de aumentar el tamaño de descarga de su aplicación.

Puede acceder a estos entornos de ejecución en su aplicación de Android agregando bibliotecas de desarrollo de TensorFlow Lite a su entorno de desarrollo de aplicaciones. Para obtener información sobre cómo utilizar los entornos de ejecución estándar en su aplicación, consulte la siguiente sección.

API y bibliotecas de desarrollo

Hay dos API principales que puede utilizar para integrar modelos de aprendizaje automático de TensorFlow Lite en su aplicación de Android:

La API de Interpreter proporciona clases y métodos para ejecutar inferencias con modelos existentes de TensorFlow Lite. La API de tareas de TensorFlow Lite incluye la API de intérprete y proporciona una interfaz de programación de nivel superior para realizar tareas comunes de aprendizaje automático en el manejo de datos visuales, de audio y de texto. Debe utilizar la API de tareas a menos que descubra que no es compatible con su caso de uso específico.

Bibliotecas

Puede acceder a las API de tareas o a la API de intérprete mediante los servicios de Google Play . También puedes usar las bibliotecas independientes para las tareas de TensorFlow Lite o las bibliotecas principales y de soporte de TensorFlow Lite en tu aplicación de Android. Para obtener detalles de programación sobre el uso de bibliotecas y entornos de ejecución de TensorFlow Lite, consulte Herramientas de desarrollo para Android .

Obtener modelos

Para ejecutar un modelo en una aplicación de Android se requiere un modelo con formato TensorFlow Lite. Puede utilizar modelos prediseñados o crear uno con TensorFlow y convertirlo al formato Lite. Para obtener más información sobre cómo obtener modelos para su aplicación de Android, consulte la sección Modelos de TensorFlow Lite.

Manejar datos de entrada

Cualquier dato que pase a un modelo de ML debe ser un tensor con una estructura de datos específica, a menudo denominada forma del tensor. Para procesar datos con un modelo, el código de su aplicación debe transformar los datos de su formato nativo, como datos de imagen, texto o audio, en un tensor con la forma requerida para su modelo.

La biblioteca de tareas de TensorFlow Lite proporciona lógica de manejo de datos para transformar datos visuales, de texto y de audio en tensores con la forma correcta para ser procesados ​​por un modelo de TensorFlow Lite.

Ejecutar inferencias

Procesar datos a través de un modelo para generar un resultado de predicción se conoce como ejecutar una inferencia . Ejecutar una inferencia en una aplicación de Android requiere un entorno de ejecución de TensorFlow Lite, un modelo 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 informáticos disponibles, como memoria y CPU, o procesadores especializados llamados aceleradores . Los modelos de aprendizaje automático pueden ejecutarse más rápido en estos procesadores especializados, como unidades de procesamiento de gráficos (GPU) y unidades de procesamiento de tensores (TPU), utilizando controladores de hardware TensorFlow Lite llamados delegados . Para obtener más información sobre los delegados y la aceleración de hardware del procesamiento de modelos, consulte la descripción general de la aceleración de hardware .

Manejar los resultados de salida

Los modelos generan resultados de predicción como tensores, que su aplicación de Android debe manejar tomando medidas o mostrando un resultado al usuario. Los resultados de salida del modelo pueden ser tan simples como un número correspondiente a un único resultado (0 = perro, 1 = gato, 2 = pájaro) para una clasificación de imágenes, hasta resultados mucho más complejos, como múltiples cuadros delimitadores para varios objetos clasificados en un imagen, con índices de confianza de predicción entre 0 y 1.

Rutas de desarrollo avanzadas

Cuando utilice modelos de TensorFlow Lite más sofisticados y personalizados, es posible que necesite utilizar enfoques de desarrollo más avanzados que los descritos anteriormente. Las siguientes secciones describen técnicas avanzadas para ejecutar modelos y desarrollarlos para TensorFlow Lite en aplicaciones de 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 entornos de ejecución adicionales que puede usar con su aplicación de Android. El uso más probable para estos entornos es si tiene un modelo de aprendizaje automático que utiliza operaciones de aprendizaje automático que no son compatibles con el entorno de ejecución estándar de TensorFlow Lite.

El tiempo de ejecución de TensorFlow Lite Flex le permite incluir operadores específicos necesarios para su modelo. Como opción avanzada para ejecutar su modelo, puede crear TensorFlow Lite para Android para incluir operadores y otras funciones necesarias para ejecutar su modelo de aprendizaje automático de TensorFlow. Para obtener más información, consulte Compilación de TensorFlow Lite para Android .

API de C y C++

TensorFlow Lite también proporciona una API para ejecutar modelos usando C y C++. Si su aplicación usa el NDK de Android , debería considerar usar esta API. Es posible que también desee considerar el uso de esta API si desea poder compartir código entre múltiples plataformas. Para obtener más información sobre esta opción de desarrollo, consulte la página de herramientas de desarrollo .

Ejecución de modelo basada en servidor

En general, debes ejecutar modelos en tu aplicación en un dispositivo Android para aprovechar una latencia más baja y una 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 tiene un modelo grande que no se comprime fácilmente a un tamaño que se ajuste a los dispositivos Android de sus usuarios, o que puede ejecutarse con un rendimiento razonable en esos dispositivos. Este enfoque también puede ser su solución preferida si la máxima prioridad es el rendimiento constante del modelo en una amplia gama de dispositivos.

Google Cloud ofrece un conjunto completo de servicios para ejecutar modelos de aprendizaje automático de TensorFlow. Para obtener más información, consulte la página de productos de inteligencia artificial 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 personalizados de aprendizaje automático y la optimización de esos modelos para su uso en dispositivos Android. Si planea crear modelos personalizados, asegúrese de considerar aplicar técnicas de cuantificación a los modelos para reducir los costos de memoria y procesamiento. Para obtener más información sobre cómo crear modelos de alto rendimiento para usar con TensorFlow Lite, consulte Mejores prácticas de rendimiento en la sección Modelos.

Próximos pasos