Aprendizaje profundo con TensorFlow Lite: para Android, iOS y Raspberry pi | de Ravi Valecha | Noviembre de 2020

TensorFlow Lite es un marco de aprendizaje profundo de código abierto para inferencia de dispositivos.

Las redes neuronales son muy caras desde un punto de vista computacional, por lo que la mayoría de las arquitecturas no se pueden ejecutar en un dispositivo móvil. Para superar este problema, tenemos la biblioteca TensorFlow Lite utilizada para optimizar modelos de diferentes formas para que puedan ejecutarse en un dispositivo móvil o cualquier otro dispositivo integrado. Se requieren algunos pasos para convertir y optimizar la red neuronal TensorFlow para dispositivos móviles (Android o iOS) usando TesnsorFlow Lite

Workflow para convertir un modelo de TensorFlow para dispositivos móviles –

Entrena un modelo en una computadora con TensorFlow

Optimización del modelo con TensorFlow Lite

Tiempo de inferencia en dispositivos móviles, indica el proceso de ejecución de un modelo de TensorFlow Lite en el dispositivo para realizar predicciones basadas en los datos de entrada.

S.nuestraCEl código para convertir el modelo de TensorFlow a Lite

Instalación de dependencias y configuración del entorno

pip install tensorflow-gpu == 1.13.1

Importación de dependencias del proyecto

Preprocesamiento del conjunto de datos: carga del conjunto de datos de MNIST Fashion

Cargue datos del conjunto de datos de moda MNIST y divídalos para entrenamiento y prueba.

Normalización de imágenes

Antes de crear un modelo con el conjunto de datos, se requiere la normalización de imágenes. Cambie la forma de los datos del tren en una matriz de 28 X 28.

Construye y compila un modelo

Antes de convertir una plantilla móvil, debe crear y guardar la plantilla. Cree una instancia de modelo secuencial. un modelo secuencial es apropiado para una simple pila de capas, que tienen exactamente un tensor de entrada y un tensor de salida. El modelo secuencial no es válido si el modelo o las capas tienen varias entradas y salidas, o si las capas se comparten.

Añadidas tres capas, podemos añadir capas de forma incremental en el modelo secuencial. La primera capa es Denso o la capa completamente conectada tiene 128 unidades y la función de activación es Reluy input_shape que es equivalente al conjunto de datos X_train.

El segundo nivel es el nivel de deserción. La tercera capa es una capa densa con softmax como función de activación.

Entrena el modelo

1 época = un pase adelante y un pase atrás todas ejemplos de formación. Establecer las épocas en 5

Intenta guardar el modelo

Evalúe el modelo utilizando datos de prueba. Verifique la pérdida y la precisión, guarde el modelo si está bien, de lo contrario, vuelva a entrenar el modelo con diferentes conjuntos de época

Convierta y guarde el modelo con TensorFlow lite

Pasa el modelo a TensorFlow lite y guárdalo en un archivo con la extensión .tflite.

Finalmente implemente el modelo Lite en el dispositivo móvil. Ejecute su modelo en el dispositivo con el intérprete de TensorFlow lite. Para ejecutar una inferencia con un modelo de TensorFlow Lite, debe ejecutarlo a través de un archivo Interprete.

La inferencia de TensorFlow Lite normalmente sigue los siguientes pasos:

Cargando una plantilla

  1. Cargar .tflite modelo en la memoria, que contiene el gráfico de ejecución del modelo.

Transforma los datos

  1. Transforme el formato de los datos de entrada que espera el modelo.

Ejecución de inferencia

Este paso implica el uso de la API de TensorFlow Lite para ejecutar el modelo. Implica algunos pasos como construir el intérprete y asignar los tensores.

Interpretando la salida

Este paso recibe los resultados de la inferencia del modelo.

T.Las API de inferencia ensorFlow se proporcionan para las plataformas Android, iOS y Linux.

En Android, la inferencia de TensorFlow Lite se puede realizar mediante la API de Java o C ++. Las API de Java ofrecen comodidad y se pueden usar directamente en las clases de actividad de Android. Las API de C ++ ofrecen mayor flexibilidad y velocidad, pero pueden requerir la escritura de envoltorios JNI para mover datos entre las capas de Java y C ++.

En iOS, TensorFlow Lite está disponible con bibliotecas nativas de iOS escritas en Swift y Objective C.

En plataformas Linux (Rasberry Pi, es posible realizar inferencias utilizando las API de TensorFlow Lite disponibles en C ++ y Python.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *