Friday , December 6 2019

Suscribete gratis a nuestro boletin semanal

VISIONA . DESARROLLADORES . CONECTADOS .

Suscribete nuestro boletin semanal

PATROCINADORES
Home / Diseño Digital / Lanza ARM librería opensource para algoritmos ML

Lanza ARM librería opensource para algoritmos ML

El compendio abarca una variedad de algoritmos de procesamiento para microcontroladores Cortex -M y está enfocado a facilitar el diseño de proyectos del Internet de las Cosas.

ElectronicosOnline.com Magazine / Oswaldo Barajas

El licenciador de arquitecturas de procesamiento ARM, presentó una nueva librería de fuente abierta para la implementación de algoritmos de Machine Learning sobre su gama de microcontroladores ARM Cortex-M.

 

La idea del fabricante es facilitar las labores de desarrollo de proyectos dirigidos al Internet de las Cosas (IoT), donde ahora mismo existe una necesidad de hardware y módulos de optimización basados en software que permitan gestionar la latencia, el consumo de energía, los costos de proyecto, el ancho de banda, la confiabilidad, y también la seguridad.

Esta nueva corriente industrial está impulsando la creación de una comunidad de desarrolladores interesados en las redes neuronales convolucionales debido a su enorme potencial en áreas de interconectividad y análisis de datos. No obstante, parte de los desarrolladores no cuentan con los recursos necesarios, incluyendo habilidades y tiempo para dedicarse a trabajar algoritmos apropiados para sus respectivos proyectos, sumado a que esta clase de sistemas requiere de hardware potente que soporte sin contratiempos el procesamiento de dichos algoritmos, lo cual es costoso.

Las redes neuronales convolucionales son un elemento importante en los sistemas que utilizan ML para el reconocimiento de imágenes.

 

Aquí nace la idea de ARM para dar paso a una librería opensource a la cual ha nombrado CMSIS-NN, que puede ser implementado para optimizar los distintos kernels de los núcleos Cortex.M con el fin de adecuarlos para soportar trabajos de ML.

La compañía refiere que el uso de esta librería no impacta el rendimiento del sistema ya que no consume en demasía los recursos de la memoria embebida.

ARM lanzó su librería CMSIS-NN para su gama de microcontroladores Cortex-M con excelente nivel de precisión en procesmiento.

 

Las APIs de kernels fueron según refiere el documento de ARM, desarrollados de tal forma que exhibieran una simplicidad que no obstaculizara su uso con algunos de los más populares frameworks de Aprendizaje de Máquinas como TensorFlow, Caffe o PyTorch, por mencionar algunos.

El CMSIS-NN incluye algunas utilidades como una colección de funciones llamadas NNsupportFunctions que facilitan algunas labores predefinidas como la conversión de datos y la activación de tablas de funciones, que a su vez pueden ser implementadas para construir redes neuronales más complejas incluyendo celdas LSTM (Memoria de Corto-Largo Plazo) y GRUs (Unidades Recurrentes con Puertas).

- PUBLICIDAD -

“La gente quiere tener capacidad computacionales vanguardistas en sistemas embebidos para proporcionar servicios más avanzados, como el reconocimiento de voz para altavoces inteligentes y loa detección de rostros con cámaras de vigilancia. Las redes neuronales convolucionales (CNN) son una de las principales formas de reconocimiento y clasificación de imágenes. Las CNNs también utilizan una variación de la percepción multicapa que requiere preprocesamiento mínimo, basado en su arquitectura de pesos compartidos y en las características de invariabilidad de la traducción”, menciona el informe de ARM.

La librería contiene funciones predefinidas como módulos que pueden ser invocados para simplificar las labores de programación.

 

El documento técnico incluye algunos ejemplos de cómo puede ser implementado alguno de los algoritmos cargados de la librería CMSIS.

En uno de estos ejemplos se habla de la Multiplicación de Matrices, un elemento sumamente importante en las redes neuronales. En la demostración, se recurre a un mat_mult kernel como método para un módulo CMSIS-DSP.

La implementación del kernel de multiplicación está sujeta a un arreglo de 2x2, tal como se observa en la figura 1, topología que permite reutilizar el código y ahorrar recursos en el número de carga de instrucciones.

El bucle interno pB1 pB2 de multiplicación para matriz con núcleos 2×2. Cada bucle calcula los resultados de producto punteado de 2 columnas y 2 filas, es decir, genera 4 salidas.

 

El recurso de acumulación se efectúa con un tipo de datos q31_t y operadores de tipo q15_t. En la ilustración se observa que se inicializa el acumulador con los correspondientes valores de sesgo y haciendo uso de la MAC SIMD bajo la invocación instruction_SMLAD.

En el caso de la Convolución, esta capa extrae un nuevo mapa de características calculando un producto de puntos entre los pesos de los filtros y un pequeño campo receptivo en el mapa de características de entrada.

El documento refiere que a menudo, una implementación de convolución basada en CPU se descompone en operaciones de reordenación y expansión de entradas (es decir, im2col, imagen a columna) y multiplicación de matrices. La im2col es un proceso de transformación de la entrada de imágenes en columnas que representan los datos requeridos por cada filtro de convolución, tal como se muestra en la siguiente figura con un ejemplo de im2col.

Ejemplo de im2col en una imagen 2D con núcleo de 3x3.

 

- PUBLICIDAD -

Revisa también ...

Congatec lanza kit de desarrollo para la familia de procesadores NXP i.MX 8 QuadMax

La compañía dedicada al diseño de hardware de evaluación dio a conocer su nueva plataforma …

NULL