Un metodología y herramientas de código abierto para implementar redes neuronales convolucionales cuantizadas con TensorFlow Lite en FPGAs
Autores: Parra, Dorfell; Escobar Sanabria, David; Camargo, Carlos
Idioma: Inglés
Editor: MDPI
Año: 2023
Acceso abierto
Artículo científico
2023
Un metodología y herramientas de código abierto para implementar redes neuronales convolucionales cuantizadas con TensorFlow Lite en FPGAs
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería Eléctrica y Electrónica
Palabras clave
Redes neuronales
CNNs
TFLite
FPGAs
Inferencia
Acelerador
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 37
Citaciones: Sin citaciones
Las redes neuronales convolucionales (CNNs) se utilizan para clasificación, ya que pueden extraer características complejas de los datos de entrada. La formación e inferencia de estas redes normalmente requieren plataformas con CPUs y GPUs. Para ejecutar la propagación hacia adelante de las redes neuronales en dispositivos de baja potencia con recursos limitados, TensorFlow introdujo TFLite. Esta biblioteca permite el proceso de inferencia en microcontroladores mediante la cuantificación de los parámetros de red y la utilización de aritmética entera. Una limitación de TFLite es que no admite CNNs para realizar inferencias en FPGAs, una necesidad crítica para aplicaciones integradas que requieren paralelismo. Aquí presentamos una metodología y herramientas de código abierto para implementar CNNs cuantificados con TFLite en FPGAs. Desarrollamos un acelerador personalizable para sistemas en chips (SoCs) basados en AXI-Lite, y lo probamos en una placa Digilent Zybo-Z7 con el FPGA XC7Z020 y un procesador ARM a 667 MHz. Además, evaluamos este enfoque empleando CNNs entrenadas para identificar caracteres escritos a mano utilizando el conjunto de datos MNIST y expresiones faciales con la base de datos JAFFE. Validamos los resultados del acelerador con TFLite ejecutándose en un portátil con un CPU AMD de 16 hilos a 4.2 GHz y 16 GB de RAM. El consumo de energía del acelerador fue 11 veces menor que el del portátil manteniendo un tiempo de ejecución razonable.
Descripción
Las redes neuronales convolucionales (CNNs) se utilizan para clasificación, ya que pueden extraer características complejas de los datos de entrada. La formación e inferencia de estas redes normalmente requieren plataformas con CPUs y GPUs. Para ejecutar la propagación hacia adelante de las redes neuronales en dispositivos de baja potencia con recursos limitados, TensorFlow introdujo TFLite. Esta biblioteca permite el proceso de inferencia en microcontroladores mediante la cuantificación de los parámetros de red y la utilización de aritmética entera. Una limitación de TFLite es que no admite CNNs para realizar inferencias en FPGAs, una necesidad crítica para aplicaciones integradas que requieren paralelismo. Aquí presentamos una metodología y herramientas de código abierto para implementar CNNs cuantificados con TFLite en FPGAs. Desarrollamos un acelerador personalizable para sistemas en chips (SoCs) basados en AXI-Lite, y lo probamos en una placa Digilent Zybo-Z7 con el FPGA XC7Z020 y un procesador ARM a 667 MHz. Además, evaluamos este enfoque empleando CNNs entrenadas para identificar caracteres escritos a mano utilizando el conjunto de datos MNIST y expresiones faciales con la base de datos JAFFE. Validamos los resultados del acelerador con TFLite ejecutándose en un portátil con un CPU AMD de 16 hilos a 4.2 GHz y 16 GB de RAM. El consumo de energía del acelerador fue 11 veces menor que el del portátil manteniendo un tiempo de ejecución razonable.