Aprendizaje automático diminuto en tan solo 2 KB de RAM

Todas las cosas de lenguaje de máquina que salen últimamente no te afectan si estás desarrollando con microcontroladores embebidos, ¿verdad? Puede que no. Microsoft Research India quiere que utilices su herramienta EdgeML para realizar tareas de aprendizaje automático como el reconocimiento de gestos en dispositivos diminutos como un Arduino Uno. Según los desarrolladores, sólo se necesitan 2 KB de RAM. No se necesita conexión de red y el trabajo utiliza Tensorflow por debajo, por lo que es compatible con mucho de lo que encontrarás para ordenadores más grandes.

Si añades potencia de procesamiento, puedes obtener más capacidad. Por ejemplo, una de las demostraciones es un reconocedor de palabras de despertador en una Raspberry Pi Zero (aunque la página para esa demo parece estar desaparecida en este momento; prueba el GesturePod, en su lugar).

El sistema generalmente utiliza Python, pero hay implementaciones eficientes en C++ para algoritmos seleccionados. El código se encuentra en GitHub. También hay una serie de documentos de investigación sobre cada herramienta que se puede encontrar en la página de GitHub. También hay un artículo reciente sobre MinUn, un intento de hacer las cosas aún más eficientes para los microcontroladores ARM. En particular, MinUn puede almacenar números aproximados para ahorrar espacio, permite la precisión variable de los tensores e intenta reducir la fragmentación de la memoria, una característica importante para las CPU que no tienen unidades de gestión de memoria.

Si aún no has estudiado TensorFlow, empieza por aquí. Por qué usar algo así con un microcontrolador? ¿Qué tal robots más inteligentes?

Marco Navarro
Marco Navarro

Deja una respuesta

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