¿Quién dijo que solo se puede experimentar con Machine Learning si cuentas con grandes recursos? Esto no es del todo cierto, dependerá del grado de dificultad, la extensión de los datos y el enfoque del problema que abordemos. Cualquiera que tenga una modesta Raspberry puede comenzar a experimentar y aprender los fundamentos del aprendizaje automático de forma rápida y sencilla.
Partiendo de las premisas del anterior artículo, traté de encontrar un contenedor Docker compatible con la arquitectura ARM de Raspberry, concretamente uno que me permitiese utilizar la biblioteca de código abierto Tensorflow de Google. Investigando por la red me encontré con el estupendo trabajo de Romilly Cocking, que permite experimentar las técnicas de Machine Learning en los prácticos notebooks de Jupyter (iPython). el cual modifique para utilizar la reciente versión Tensorflow 1.0 y añadir varias librerías, obteniendo un contenedor que incluye los siguientes elementos:
Python: Un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma.
Numpy: Paquete fundamental para la computación científica con Python.
Scipy: Software de código abierto para la computación científica en Python.
Matplotlib: Una biblioteca para la generación de gráficos a partir de datos contenidos en listas o arrays en el lenguaje de programación Python.
Pandas: Una biblioteca de código abierto, con licencia BSD que proporciona estructuras de datos de alto rendimiento y fácil de usar y herramientas de análisis de datos para Python.
Scikit-learn: Una biblioteca de Machine Learning de software libre para el lenguaje de programación Python.
Tensorflow: Otra biblioteca de Machine Learning de software libre desarrollado por Google para satisfacer sus necesidades de sistemas capaces de construir y entrenar redes neuronales para detectar y descifrar patrones y correlaciones análogas al aprendizaje y razonamiento que usan los humanos.
Jupyter: El proyecto Jupyter es un proyecto de código abierto que nació del Proyecto IPython en 2014 a medida que evolucionó para apoyar la ciencia de datos interactivos y la computación científica en todos los lenguajes de programación, hace uso de la shell y el kernel de iPython (ipykernel), mientras que el notebook y otras partes de IPython pasaron a formar parte del proyecto Jupyter.
Un completo arsenal con el experimentar una gran parte de los ejemplos que encontrará en las webs anteriores y con sus propios proyectos, una solución versátil que permite agilizar las pruebas y ajustes de pequeñas porciones de código o programas más complejos. También puede ser utilizado para elaborar guías, tutoriales y otros tipos de documentación en la que se puede ilustrar paso a paso las partes del proceso con un amplio abanico de recursos multimedia (texto enriquecido, imágenes, videos, gráficos, …).
A continuación os dejo los enlaces a GitHub y el Repositorio de Docker, con los que podréis empezar a utilizar directamente el contenedor o construir el vuestro ajustándolo a vuestras necesidades.