17 días ejecutando Google Colab

Eduardo Ortega
The Agile Crafter’s Notebook (spanish)
3 min readOct 31, 2020

Para mi proyecto de final de grado en la universidad, necesito ejecutar varios experimentos con diferentes modelos de redes neuronales y descargar archivos comprimidos con los resultados y los modelos aprendidos, para ello estoy usando un entorno conocido como Google Colaboratory o Google Colab. En total, necesito descargar más de 23000 archivos.

En los últimos 17 días, he ejecutado con éxito 19923 experimentos y me he encontrado con ciertos problemas que me han retrasado, en este post hablaré sobre esos problemas para que en el futuro no pasen inadvertidos.

1. Definiciones

Google Colaboratory: es un entorno gratuito de Jupyter Notebook que no requiere configuración y que se ejecuta completamente en la nube. Por otro lado, Jupyter Notebook es un entorno interactivo que permite desarrollar código Python de manera dinámica y se ejecuta como una aplicación cliente-servidor.

Cuaderno: archivos creados en Colab o Jupyter.

Celda: los cuadernos se dividen en pequeños bloques llamados celdas, en ellas se puede ejecutar código Python o renderizar texto usando Markdown.

2. Máquinas Virtuales (Sesiones)

Colab usa máquinas virtuales para ejecutar el código del cuaderno en el servidor, dichas máquinas tienen un tiempo de vida máximo de 12 horas. Por lo tanto, cualquier cosa que tarde más de 12 horas en ejecutarse quedará incompleta.

Cada cuenta de Google puede tener como máximo 5 sesiones abiertas simultáneamente, en este contexto, una sesión es una máquina virtual. Este límite puede reducirse con el tiempo, por ejemplo: si encadenas varias ejecuciones de 5 sesiones y 12 horas cada una, acabarás teniendo un límite de una única sesión abierta. Este límite dura aproximadamente 12 horas.

Por este motivo, si necesitas tener 5 sesiones activas siempre, lo mejor es tener una segunda cuenta de Google a la que poder recurrir cuando aparezca la limitación en la primera.

3. Conexión a Internet

Para que un cuaderno de Colab se ejecute, debes estar conectado a internet. Si tienes mala cobertura WiFi, es posible que la ejecución se pare porque el servidor interpreta que te has desconectado, por eso es mejor que conectes el ordenador al router usando un cable y apagues la tarjeta WiFi del ordenador.

4. Mostrar Gráficas

Mostrar gráficas en Colab es útil, pero sólo se mostrarán cuando la ejecución de la celda correspondiente termine. Si usas una celda que tarda 12 horas en ejecutarse, como yo, no verás las gráficas hasta que pase ese tiempo, o peor aún, es posible que se acumulen tantas gráficas, que la ejecución de la máquina virtual se pare porque has consumido toda la memoria RAM disponible. Además, cuando tienes más de 20 figuras abiertas aparece un warning bastante molesto en la salida de la ejecución.

Para evitar todo esto, lo mejor es que guardes las gráficas como imagen y luego las cierres, de este modo:

5. Evitar la Pérdida de Datos: Conectar con Google Drive

Una vez que la máquina virtual se desconecta, lo cual puede pasar por todo lo mencionado anteriormente, se pierden los archivos locales que hubieran en la misma, por eso es buena idea conectar el cuaderno con Google Drive e ir guardando todos los archivos generados en una carpeta. Esto también facilita la descarga de archivos, ya que en Colab no existe la opción de descargar varios archivos a la vez, se tienen que descargar de uno en uno.

Para conectar con Drive, basta con ejecutar el siguiente código:

Esto generará un enlace que nos abrirá un cuadro de diálogo, donde seleccionaremos la cuenta de Drive a la que queremos conectarnos y generará una contraseña que se debe introducir en el cuaderno.

6. Carga de Archivos desde Google Drive

Subir varios archivos a varias sesiones puede ser algo molesto ya que es una tarea repetitiva y que lleva tiempo, dependiendo de la cantidad de archivos y su tamaño. Las máquinas virtuales usan Linux, de modo que, para evitar esta demora, se pueden conectar las sesiones con Google Drive, copiar desde allí los archivos necesarios e importar las funciones después.

En cuanto a los ficheros de datos, se puede acceder directamente desde Drive sin necesidad de copiarlos, suponiendo que no vayan a sufrir modificaciones durante la ejecución del cuaderno.

Por ejemplo, si tenemos 3 ficheros fuente, se puede ahorrar tiempo de esta forma:

El símbolo “%” significa que vamos a ejecutar un comando de Linux en lugar de código Python.

--

--