Guía fácil para desplegar TensorFlow con Docker

En este artículo te vamos a explicar lo sencillo que es desplegar TensorFlow en un servidor Cloud gracias a Docker para ayudarte a desplegar tus proyectos de Machine Learning.

¿Qué es TensorFlow?

TensorFlow es un software de Google creado para el aprendizaje automático de máquinas. Es toda una plataforma de código abierto para machine learning que ofrece un ecosistema de herramientas y librerías para investigar y desarrollar fácilmente en un mismo entorno integrado. Permite la creación de modelos y el entrenamiento de los sistemas de machine learning, ofreciendo una plataforma para la ejecución de múltiples lenguajes. Se puede usar para la investigación de cualquier tipo de idea en el ámbito científico o empresarial.

¿Qué es Docker?

Docker es un sistema para el despliegue de aplicaciones en entornos aislados que se llaman contenedores. Permite disponer de una capa encima del sistema operativo donde se ejecutan los programas mediante virtualización. Es muy utilizada para el desarrollo y el despliegue de aplicaciones:

  • En fases de desarrollo permite disponer de cualquier tipo de software en el ordenador sin necesidad de haberlo instalado, ya que corre simplemente dentro de un contenedor.
  • Para el despliegue de aplicaciones aporta toda una gama de ventajas en operaciones (DevOps), ya que posibilita levantar contenedores por medio de programas de automatización y ejecutarlos de manera autónoma dentro de un mismo servidor.

Cómo instalar TensorFlow con Docker

Docker es la mejor solución para desplegar fácilmente TensorFlow en un servidor sin tener que preocuparse de asuntos como la configuración, la descarga de múltiples programas y su ejecución de manera sincronizada.

El primer paso consiste en la instalación de Docker en el servidor. Esta tarea puede realizarse muy fácilmente gracias al Cloud de Arsys, que permite crear servidores donde ya disponemos de Docker correctamente instalado y configurado. Para beneficiarnos de esta ayuda, durante el proceso de creación de la máquina a través de Cloudbuilder, simplemente tenemos que elegir la imagen de la aplicación «Docker». Para más información sobre cómo crear la máquina con Docker desplegado, recomendamos la lectura del artículo ‘Crea un servidor Cloud con Docker‘.

Una vez instalado Docker en el servidor solo hace falta ejecutar un par de comandos.

docker pull tensorflow/tensorflow

Este comando nos traerá la imagen de TensorFlow para Docker. Lanzado este comando, Docker descargará la imagen y la almacenará en el servidor.

El siguiente comando nos permite ejecutar TensorFlow poniendo en marcha el contenedor y el software asociado.

docker run -it -p 8888:8888 tensorflow/tensorflow:latest-jupyter

Una vez ejecutado este comando veremos una salida en la que se indica el modo de acceder al Jupyter server desplegado.

Para acceder a la plataforma ahora básicamente se trata de componer la dirección del servicio, mediante la IP del servidor Cloud y la ruta que nos indican en la salida, que nos lleva donde se encuentra instalado TensorFlow.

Fíjate que en la dirección también aparece un token, que nos permitirá acceder a Jupyter sin necesidad de escribir una clave. La dirección tendrá una forma como esta: http://0.0.0.0:8888/?token=f9c95fc000257183e2ee23feb0b208b854b793df1d1548s8

Insistimos en la necesidad de sustituir la IP por la de tu servidor. Además, es muy importante que en el servidor esté habilitado el puerto donde está escuchando el servidor, en este caso «8888».

Para modificar el firewall de los servidores cloud tienes que entrar en la sección «Red > Políticas de firewall» del panel de Cloudbuilder. Allí tendrás que editar la política de firewall de tu servidor para habilitar el puerto correspondiente.

Una vez accedemos a la dirección, si hemos configurado correctamente el firewall, podremos ver la interfaz de Jupyter server.

Eso es todo, en pocos minutos tendremos TensorFlow con Docker y funcionando con JupyterLab. Podemos empezar a trabajar con la plataforma de Machine Learning de Google.