Google Colab es una herramienta de Google que permite crear un documento ejecutable en varios lenguajes de programación. Este documento permite escribir, ejecutar y compartir código (de ahí lo de colab o colaborativo). Parte del llamado proyecto Jupyter que se encuentra disponible en Google Drive. Un documento notebook se compone de celdas, cada una de las cuales puede contener código, texto, imágenes y demás. Podíamos hacer el símil que es como un documento de texto que contiene cajas en su interior que permiten ejecutar código.
Colab conecta tu notebook a un ambiente runtime que permite carga todas las aplicaciones de un programa y las ejecuta en una plataforma basada en la nube, lo cual significa que puedes ejecutar código Python sin necesidad de instalación previa en tu dispositivo. Python se encuentra instalado en el entorno de ejecución alojado en la nube que automáticamente se conecta tu sesión abierta en Google colab.
Introducción
Colab, o “Colaboratory”, te permite escribir y ejecutar código de Python en tu navegador, sin configuración requerida, con acceso gratuito a una GPU (Graphics Processing Unit) y facilidad para compartir. Seas estudiante, científico de datos o investigador de IA, Colab facilita tu trabajo. Este video introductorio sobre Colab te va a permitir comenzar a usarlo desde 0.
Biblioteca integrada
Podemos buscar en la biblioteca integrada de Colab fragmentos de código y código de inserción para crear una visualización interactiva de los datos. Esta visualización se crea con Altair, una de las varias bibliotecas de visualización apoyada por Colab. Altair es una biblioteca de visualización estadística declarativa para Python. Altair ofrece una gramática de visualización poderosa y concisa para construir rápidamente una amplia gama de gráficos estadísticos.
Por declarativo, se refiere a que puede proporcionar una especificación de alto nivel de lo que desea que incluya la visualización, en términos de datos, marcas gráficas y canales de codificación, en lugar de tener que especificar cómo implementar la visualización en términos de for- bucles, comandos de dibujo de bajo nivel, etc. La idea clave es declarar vínculos entre los campos de datos y los canales de codificación visual, como el eje x, el eje y, el color, etc. El resto de los detalles del gráfico se manejan automáticamente. Sobre la base de esta idea de trazado declarativo, se puede crear una sorprendente gama de visualizaciones simples a sofisticadas utilizando una gramática concisa.
Ejemplo de código cuyo resultado puede verse en la Fig. 1:
import altair as alt
from vega_datasets import data
source = data.disasters.url
alt.Chart(source).mark_circle(
opacity=0.8,
stroke='black',
strokeWidth=1
).encode(
alt.X('Year:O', axis=alt.Axis(labelAngle=0)),
alt.Y('Entity:N'),
alt.Size('Deaths:Q',
scale=alt.Scale(range=[0, 4000]),
legend=alt.Legend(title='Annual Global Deaths')
),
alt.Color('Entity:N', legend=None)
).properties(
width=450,
height=320
).transform_filter(
alt.datum.Entity != 'All natural disasters'
)
Compartir notebooks de Colab
Los notebooks se comparten como un documento de Google y es bastante útil utilizar celdas de texto que expliquen lo que se está realizando. Es muy similar a Markdown, que como su nombre indica se trata de un lenguaje de marcado ligero creado que trata de conseguir la máxima legibilidad y facilidad de publicación tanto en su forma de entrada como de salida, inspirándose en muchas convenciones existentes para marcar mensajes de correo electrónico usando texto plano.
Las celdas de texto están formateadas con Markdown. El formato Markdown es simple y potente, permitiéndote agregar títulos (encabezados), párrafos, listas, e incluso fórmulas matemáticas. Los títulos son muy útiles porque dividen el documento en partes y puedes crear índices con distintos niveles como se muestra en la Fig. 2.
Para compartir tus notebooks con otras personas puedes hacerlo a través de Google Drive o incluso exportando tu notebook a GitHub. El notebook se almacena en el formato de Jupyter notebook. Los notebooks que creas se pueden ver y ejecutar en Jupyter Notebook, JupyterLab, y otros sistemas compatibles.
Proyecto Seedbank
Una colección útil es el proyecto Seedbank en research.google.com/seedbank. Por ejemplo, la semilla Neural Style Transfer muestra cómo usar el aprendizaje profundo para transferir estilos entre las imágenes y está conectado a un notebook de Colab donde puedes ejecutar y cambiar el código. Puedes ver una copia en https://colab.research.google.com/drive/1TcSQgGllR0YWjKOKMsmgzlT_Y1phC4l1?usp=sharing.
Se trata de un tutorial que mediante aprendizaje profundo se crean imágenes con el estilo de otra imagen. ¡Esto se conoce como transferencia de estilo neuronal! Esta es una técnica descrita en el artículo de Leon A. Gatys, A Neural Algorithm of Artistic Style, que es muy interesante de leer y seguro te da muchas ideas. El resultado puede verse en la siguiente figura donde se muestra el antes y el después.
Conexión de Google Colab con Google Drive
Desde Google Colab puede guardar una copia en tu Google Drive. Se va a situar en la carpeta Colab Notebooks. Esta copia va a permitir que ejecutes un notebook y los cambios se guarden en Google Drive. Además, una vez abierto un notebook puedes descargarlo para trabajar en otros entornos de escritorio de Python o R, puesto que tienes la opción de descargar el fichero .py o .ipynb.
Google Colab para R
Dentro de Google Colab puedes trabajar en R, un lenguaje de programación orientado a la estadística. Para usar el notebook directamente con R tienes que:
- Abrir un navegador.
- Ir a esta dirección: https://colab.research.google.com/#create=true&language=r, o utilizar esta URL acortada https://colab.to/r
Tras acceder a la URL, se creará un nuevo cuaderno que tendrá de nombre Untitled.ipynb. En principio, no hay diferencia entre notebooks con Python o R. Sin embargo, en la configuración del Notebook puedes comprobar que el entorno es R.
Ejemplos sobre Machine Learning en Google Colab
A continuación, comparto varios documentos realizados en Google Colab de Machine Learning que seguro te resultarán interesantes.
- https://colab.research.google.com/drive/1X1berL_btxtb63qjIWh-5sDVRQvOok-W?usp=sharing
- https://colab.research.google.com/drive/1T6umAj1CLopTItwbZah5hToTb36L1QBo?usp=sharing
- https://colab.research.google.com/drive/1wOr1jP7-s076qyJl7gxgQ63cqiEYJ8g0?usp=sharing
Referencias
- https://colab.research.google.com/github/uwdata/visualization-curriculum/blob/master/altair_introduction.ipynb#scrollTo=YueLLjO8YJLK
- https://colab.research.google.com/github/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/01.01-Help-And-Documentation.ipynb
- https://altair-viz.github.io/index.html
- https://colab.research.google.com/drive/1W08x5QOMocmtZbOPy9dXl-UL8VRb1abB