[Diao Ye aprende a programar] MicroPython práctico (10) - aprendizaje basado en cero KPU de la red neuronal MaixPy

Por la mañana, Baidu buscó "KPU de red neuronal" y encontró un artículo de Yufei.com "Comprender APU/BPU/CPU/DPU/EPU/FPU/GPU y otros procesadores en un artículo", que presentaba varios procesadores en gran detalle. El contenido de KPU" es el siguiente:

Unidad de Procesamiento del Conocimiento KPU
. Canaan afirma lanzar su propio chip KPU de IA en 2017. Canaan tiene la intención de integrar redes neuronales artificiales y procesadores de alto rendimiento en un solo chip KPU, principalmente para proporcionar servicios de aplicaciones de inteligencia artificial heterogéneos, en tiempo real y fuera de línea. Esta es otra empresa de máquinas de minería con buen dinero que se expande en el campo de la IA. Como empresa que fabrica chips para máquinas de minería (que pretenden ser chips dedicados para blockchain) y máquinas de minería, Jianan Zhizhi ha recibido casi 300 millones de yuanes en financiación, con una valoración de casi 3300 millones de yuanes. Se dice que Jianan Zhizhi comenzará la reforma de acciones y promoverá la OPI en un futuro próximo.

Otro: El término Unidad de Procesamiento del Conocimiento no es el primero propuesto por Jianan Zhizhi. Ha habido artículos y libros sobre este término desde hace 10 años. Sin embargo, Canaan ahora ha solicitado una marca registrada para KPU.

(Enlace original: https://www.eefocus.com/mcu-dsp/391017/r0)

Traducción de Baidu: Unidad de procesamiento de conocimientos, que significa aproximadamente "unidad de procesamiento de conocimientos".

inserte la descripción de la imagen aquí

Busque "Tecnología de Canaan" y encuentre el artículo que presenta a Canaan "Caanan CEO Zhang Nangeng: No es un sustituto, solo un pionero" y continúe aprendiendo sobre la situación relevante:

Zhang Nangeng no parece una generación típica posterior a los 80. Su rostro joven y cabello blanco en la parte superior de su cabeza reflejan el agotamiento que a menudo tienen los empresarios. Hablando sobre su intención original de iniciar un negocio, dijo con franqueza: "Me gusta lanzar cosas nuevas. En comparación con seguir a otros para hacer cosas maduras, personalmente prefiero hacer algunas exploraciones nuevas". Zhang Nangeng está muy seguro.
Después de graduarse de la Universidad de Beihang con una licenciatura en ciencias de la computación, Zhang Nangeng una vez trabajó como "tornillo" en una institución pública. Cada vez que recuerda esta experiencia, Zhang Nangeng se siente avergonzado. En ese momento, todavía era técnico de la Corporación de Ciencia e Industria Aeroespacial.Este período de servicio ha cultivado su espíritu de ser un hombre del espacio meticuloso con la tecnología y responsable de su trabajo. Tres años más tarde, en lugar de tomar el camino elegido por la mayoría de sus colegas, volvió a la escuela para continuar sus estudios.La razón seguía siendo "Espero que aparezcan cosas nuevas todos los días y hacer cosas más desafiantes".
Buscar la innovación no significa impetuosidad, la curiosidad sí puede crear el mundo, pero la premisa es que la actitud de "buscar la innovación" puede implementarse sólidamente en el posicionamiento del producto, la investigación y el desarrollo, y el camino hacia el mercado. Hay que decir que esto está estrechamente relacionado con la experiencia laboral acumulada de Zhang Nangeng en instituciones públicas.
Durante sus estudios avanzados en la Universidad de Beihang, Zhang Nangeng no estaba "tranquilo". Después de experimentar muchos intentos nuevos, finalmente estableció su dirección en el chip blockchain ASIC. Restringido por el entorno de la sección de enseñanza e investigación de la escuela, Zhang Nangeng decidió abandonar la escuela en 2012 para iniciar un negocio. Unos meses más tarde, nació Canaan Technology y lanzó el primer dispositivo informático blockchain del mundo basado en chips ASIC en el mismo año. Canaan Technology se ha convertido en la empresa con la historia más larga en este campo, sin excepción.
La elección de los chips de IA también está relacionada con el deseo personal de exploración de Zhang Nangeng: "Tengo un hábito. Si ya hay buenas empresas o productos en una industria, como las CPU, entonces no quiero hacerlo. Chips de IA Después de tantos años, todavía no se ha desarrollado particularmente bien, y este tipo de industria es adecuada para que los emprendedores la desechen.”
Como miembro de la industria de chips de inteligencia artificial de China, Canaan Technology, naturalmente, tiene que pasar por la misma prueba. Zhang Nangeng dijo: "Siempre creo que mientras el producto sea lo suficientemente bueno, no tenemos miedo de ningún desafío". En 2016, Canaan Technology realizó con éxito la producción en masa de chips de tecnología de proceso de 28 nm y dio el primer paso en la producción en masa de chips de IA. Luego, en 2018, logró la producción en masa de Kanzhi K210, el primer chip de computación inteligente de borde comercial de desarrollo propio del mundo basado en RISC-V.
En el campo de la IA, Zhang Nangeng dijo francamente que Canaan Technology no tiene una carga histórica, "No somos seguidores". Ya sea la adopción de la arquitectura RISC-V o la investigación y el desarrollo independientes del acelerador de redes neuronales de IA KPU en Kanzhi K210, es una prueba clara del poder duro de la tecnología Canaan.
(Enlace original: https://baijiahao.baidu.com/s?id=1639849500096450487&wfr=spider&for=pc)

inserte la descripción de la imagen aquí

Zhihui, un ingeniero de algoritmos de oppo, lo describió en "IA integrada desde el inicio hasta la presunción [K210] - Hardware y entorno" de la siguiente manera:

¿Qué es K210?
K210 es una MCU lanzada el año pasado por una compañía llamada Canaan que alguna vez fabricó chips de minería.Operaciones acumuladas de redes neuronales.
No crea que el rendimiento de la MCU no debe ser tan bueno como el del SoC de gama alta. Al menos en términos de cómputo de IA, la potencia de cómputo del K210 es bastante impresionante. Según la descripción oficial de Canaan, la KPU de K210 tiene una potencia informática de 0,8 TOPS. A modo de comparación, la potencia informática de NVIDIA Jetson Nano con GPU de 128 unidades CUDA es de 0,47 TFLOPS, mientras que la última Raspberry Pi 4 tiene menos de 0,1 TFLOPS.

(Enlace original: https://zhuanlan.zhihu.com/p/81969854)

inserte la descripción de la imagen aquí

"Plataforma de hardware de aprendizaje automático de bajo costo de Circuit City: uso de MicroPython para construir rápidamente dispositivos de visión y audición basados ​​en IA"
:

Este artículo describe una alternativa simple y rentable de Seeed Technology que permite a los desarrolladores implementar soluciones basadas en IA de alto rendimiento utilizando el conocido lenguaje de programación MicroPython.

En aplicaciones de visión artificial, la KPU realiza inferencias a más de 30 fps utilizando tipos de marcos de imagen más pequeños para la detección de rostros u objetos en productos inteligentes. Para aplicaciones que no son en tiempo real, los desarrolladores pueden usar una memoria flash externa para manejar el tamaño del modelo y están limitados únicamente por la capacidad de la memoria flash.

inserte la descripción de la imagen aquí

Desarrollo rápido con MicroPython
MicroPython se creó para proporcionar un subconjunto optimizado del lenguaje de programación Python para microcontroladores con recursos limitados. MicroPython proporciona soporte directo para el acceso al hardware, introduciendo un desarrollo basado en Python relativamente simple para el desarrollo de software de sistemas integrados.

Los desarrolladores usan el mecanismo familiar de importación de Python, en lugar de las bibliotecas del lenguaje C, para cargar las bibliotecas requeridas. Por ejemplo, los desarrolladores pueden acceder a la interfaz I2C del microcontrolador, los temporizadores y más simplemente importando el módulo de la máquina MicroPython. Para los diseños que usan un sensor de imagen, los desarrolladores pueden capturar una imagen importando el módulo del sensor y luego llamando a sensor.snapshot() para devolver un cuadro del sensor de imagen.

El proyecto MaixPy de Seeed amplía la funcionalidad de MicroPython para admitir el procesador K210 de doble núcleo y la placa de desarrollo asociada en el corazón del módulo MAIX-I. El intérprete MaixPy MicroPython se ejecuta en el procesador K210 del módulo MAIX-I y puede usar funciones MicroPython y módulos MaixPy especiales que incluyen las funciones KPU del procesador K210, como el módulo MaixPy KPU.

Los desarrolladores pueden implementar fácilmente la inferencia de CNN utilizando MaixPy y el módulo KPU. De hecho, el repositorio de modelos Seeed MaixHub proporciona muchos modelos CNN preentrenados para ayudar a los desarrolladores a comenzar con el módulo MAIX-I. Para descargar estos modelos, los desarrolladores deben proporcionar una ID de máquina. Esta ID se puede obtener ejecutando la utilidad del generador de ID en la placa MAIX.

Por ejemplo, con el kit Seeed Sipeed MAIX Go con LCD, los desarrolladores pueden cargar un modelo previamente entrenado para la detección de rostros. Realizar inferencias con el modelo requiere solo unas pocas líneas de código Python.

(Enlace original: https://www.cirmall.com/articles/29038)

La red neuronal
es una tecnología de aprendizaje automático que simula la red neuronal del cerebro humano para lograr inteligencia artificial. Una red neuronal es una parte integral de un sistema ML (generalmente un submódulo de aprendizaje profundo) que tiene una gran cantidad de parámetros (llamados pesos) que se ajustan gradualmente durante el entrenamiento en un intento de representar de manera eficiente los datos que procesan, para que pueda Fácilmente generalice bien a los nuevos casos que se le presentarán. Se llama así porque imita la estructura de un cerebro biológico, en el que las neuronas intercambian impulsos electroquímicos a través de sinapsis, dando como resultado representaciones y pensamientos que el mundo exterior estimula en nuestra mente. La red neuronal en el cerebro humano es una organización muy compleja. Se estima que hay 100 mil millones de neuronas en el cerebro adulto.

inserte la descripción de la imagen aquí
Neuronas del cerebro humano
El estudio de las neuronas tiene una larga historia, en 1904 los biólogos ya conocían la composición y estructura de las neuronas. Una neurona generalmente tiene múltiples dendritas, que se utilizan principalmente para recibir información entrante, mientras que solo hay un axón y hay muchas terminales de axón al final del axón que pueden transmitir información a otras neuronas. La terminal del axón se conecta con las dendritas de otras neuronas para transmitir señales. La ubicación de esta conexión se llama "sinapsis" en biología. La forma de las neuronas en el cerebro humano se puede ilustrar brevemente con la siguiente figura:

inserte la descripción de la imagen aquí
Diagrama clásico de red neuronal
Esta es una red neuronal con tres capas. El rojo es la capa de entrada, el verde es la capa de salida y el púrpura es la capa intermedia (también llamada capa oculta). La capa de entrada tiene 3 unidades de entrada, la capa oculta tiene 4 unidades y la capa de salida tiene 2 unidades.

1. Al diseñar una red neuronal, la cantidad de nodos en la capa de entrada y la capa de salida a menudo se fija, y la capa intermedia se puede especificar libremente 2. La topología
y las flechas en el diagrama de estructura de la red neuronal representan la dirección de flujo de datos durante el proceso de predicción y entrenamiento 3. La clave en el
diagrama de estructura no son los círculos (que representan "neuronas"), sino las líneas de conexión (que representan conexiones entre "neuronas"). Cada línea de conexión corresponde a un peso diferente (su valor se llama peso), que necesita ser entrenado.

inserte la descripción de la imagen aquí

Ha habido tres altibajos de las redes neuronales en la historia,
hubo momentos en que fueron elogiadas hasta el cielo, y también hubo momentos en que cayeron en la calle y nadie se preocupó por ellas. medio. A partir de una red neuronal de una sola capa (perceptrón), a una red neuronal de dos capas con una capa oculta, y luego a una red neuronal profunda de varias capas, hay tres subidas.

Los picos y valles de la figura pueden verse como los picos y valles del desarrollo de redes neuronales. El eje horizontal en el gráfico es el tiempo en años. El eje vertical es una representación esquemática de la influencia de una red neuronal. Si los 10 años desde el modelo de Hebb propuesto en 1949 hasta el nacimiento del perceptrón en 1958 se consideran descendentes (no ascendentes), entonces se puede considerar que la red neuronal experimentó un proceso de "tres altibajos", similar al camarada "Xiaoping". Como dice el refrán, cuando el cielo está a punto de enviar una gran misión a la gente, primero hay que trabajar mucho la voluntad y los músculos y los huesos. El éxito de la red neuronal que ha experimentado tantos giros y vueltas en esta etapa también puede considerarse como una acumulación de temple.

La mayor ventaja de la historia es que puede usarse como referencia para el presente. La investigación científica presenta un proceso ascendente en espiral, que no puede ser un viento en popa. Al mismo tiempo, esta también es una llamada de atención para las personas demasiado interesadas en el aprendizaje profundo y la inteligencia artificial, porque esta no es la primera vez que las personas se vuelven locas por las redes neuronales. De 1958 a 1969, y de 1985 a 1995, las expectativas de las personas sobre las redes neuronales y la inteligencia artificial durante estas dos décadas no eran tan bajas como ahora, pero todos pueden ver claramente los resultados. Por lo tanto, la calma es la mejor manera de lidiar con el auge actual del aprendizaje profundo. Si hay una afluencia de abejas debido a la popularidad del aprendizaje profundo, o debido a la "escena del dinero", entonces la víctima final solo puede ser usted mismo. La industria de las redes neuronales ha sido elogiada por la gente dos veces, y creo que cuanto mayor sea el elogio, peor será la caída. Por lo tanto, los académicos en el campo de las redes neuronales también deben verter agua sobre este aumento y no permitir que los medios y los inversores sobreestimen esta tecnología. Es muy probable que después de 30 años en Hedong y 30 años en Hexi, la red neuronal vuelva a caer al fondo en unos pocos años. Según el gráfico histórico anterior, esto es bastante posible.

Para obtener más información, consulte "Red neuronal: el artículo más comprensible y claro"
https://blog.csdn.net/illikang/article/details/82019945

inserte la descripción de la imagen aquí

¿Qué son las KPU?
KPU es un procesador de redes neuronales de propósito general, que puede realizar cálculos de redes neuronales convolucionales con bajo consumo de energía, obtener el tamaño, las coordenadas y los tipos de objetivos detectados de vez en cuando, y detectar y clasificar rostros u objetos.

¿Por qué necesitamos KPU?
KPU, Procesador de red neuronal o Unidad de procesamiento de conocimiento, es el núcleo de la parte de procesamiento de IA de MAIX.

Entonces, ¿cómo maneja la KPU el algoritmo de IA?

En primer lugar, el llamado algoritmo de IA actual (2019Q1) se basa principalmente en modelos de redes neuronales de varias estructuras derivadas del algoritmo **Neural Network**, como VGG, ResNet, Inception, Xception, SeqeezeNet, MobileNet, etc. .

Entonces, ¿por qué no usar CPU/MCU ordinarios para calcular el algoritmo de red neuronal?

Porque para la mayoría de los escenarios de aplicación, la complejidad computacional de las redes neuronales es demasiado grande:

Por ejemplo, para el análisis de imágenes RGB con 640x480 píxeles, suponiendo que la red de la primera capa tiene 16 núcleos de convolución de 3x3 por canal de color, solo la primera capa necesita realizar 640x480x3x16 = 15 millones de operaciones de convolución.

Y el tiempo de cálculo de una matriz de 3x3 es el tiempo de 9 multiplicaciones y sumas. Cargar dos operandos en el registro requiere 3 ciclos cada uno, un ciclo de multiplicación, un ciclo de suma, un ciclo de comparación y un ciclo de salto Entonces se requieren aproximadamente 9x(3+3+1+1+1+1)=90 ciclos

Por lo tanto, ¡se necesitan 15M*90=1,35G ciclos para calcular una capa de red!

Eliminemos las probabilidades, ciclo 1G, luego el STM32 que se ejecuta a una frecuencia principal de 100 MHz necesita 10 s para calcular una capa, y el Cortex-A7 que se ejecuta a una frecuencia principal de 1 GHz necesita 1 s para calcular una capa.

¡Por lo general, un modelo práctico de red neuronal requiere más de 10 capas de cálculos! ¡Para una CPU que no está optimizada, toma segundos o incluso minutos calcular!

Por lo tanto, en términos generales, es muy lento y poco práctico para CPU/MCU calcular la red neuronal.

Los escenarios de aplicación de la computación de redes neuronales se dividen en el lado de entrenamiento y el lado de inferencia.

Para la alta potencia de cómputo que requieren los modelos de entrenamiento, ya contamos con varias tarjetas gráficas de alto rendimiento de NVIDIA para acelerar el cómputo.

Para la inferencia de modelos, generalmente se encuentra en terminales de electrónica de consumo/electrónica industrial, es decir, AIoT, que tiene requisitos de volumen y consumo de energía. Por lo tanto, debemos introducir un módulo de aceleración dedicado para acelerar las operaciones de inferencia de modelos. En este momento, KPU viene en juego dio a luz!

KPU tiene las siguientes características:
Admite el modelo de punto fijo entrenado por el marco de entrenamiento convencional de acuerdo con reglas de restricción específicas.
No hay un límite directo en la cantidad de capas de red y admite la configuración separada de los parámetros de red neuronal convolucional para cada capa. , incluida la cantidad de canales de entrada y salida, ancho de línea de entrada y salida Altura de columna
Admite dos núcleos de convolución 1x1 y 3x3
Admite cualquier forma de función de activación
El tamaño máximo de parámetro de red neuronal admitido es de 5,5 MiB a 5,9 MiB cuando se trabaja en tiempo real El
máximo el tamaño del parámetro de red admitido es (capacidad flash - volumen de software)

Supongo que te gusta

Origin blog.csdn.net/weixin_41659040/article/details/131971965
Recomendado
Clasificación