Google Colab - Guía rápida

Google es bastante agresivo en la investigación de IA. Durante muchos años, Google desarrolló un marco de inteligencia artificial llamadoTensorFlow y una herramienta de desarrollo llamada Colaboratory. Hoy TensorFlow es de código abierto y, desde 2017, Google hizo que Colaboratory fuera gratuito para uso público. Colaboratory ahora se conoce como Google Colab o simplementeColab.

Otra característica atractiva que ofrece Google a los desarrolladores es el uso de GPU. Colab es compatible con GPU y es totalmente gratuito. Las razones para hacerlo gratis para el público podrían ser hacer de su software un estándar en los académicos para enseñar el aprendizaje automático y la ciencia de datos. También puede tener una perspectiva a largo plazo de crear una base de clientes para las API de Google Cloud que se venden por uso.

Independientemente de las razones, la introducción de Colab ha facilitado el aprendizaje y el desarrollo de aplicaciones de aprendizaje automático.

Entonces, comencemos con Colab.

Si ha usado Jupytercuaderno anteriormente, aprendería rápidamente a utilizar Google Colab. Para ser precisos, Colab es un entorno de portátil Jupyter gratuito que se ejecuta completamente en la nube. Lo más importante es que no requiere una configuración y los miembros de su equipo pueden editar simultáneamente los cuadernos que cree, de la misma forma que edita documentos en Google Docs. Colab admite muchas bibliotecas populares de aprendizaje automático que se pueden cargar fácilmente en su computadora portátil.

¿Qué le ofrece Colab?

Como programador, puede realizar lo siguiente con Google Colab.

  • Escribir y ejecutar código en Python

  • Documente su código que admita ecuaciones matemáticas

  • Crear / cargar / compartir cuadernos

  • Importar / guardar cuadernos desde / a Google Drive

  • Importar / publicar cuadernos desde GitHub

  • Importar conjuntos de datos externos, por ejemplo, de Kaggle

  • Integre PyTorch, TensorFlow, Keras, OpenCV

  • Servicio gratuito en la nube con GPU gratis

En este capítulo, creará y ejecutará su primer cuaderno trivial. Siga los pasos que se le han dado siempre que sea necesario.

Note - Dado que Colab utiliza implícitamente Google Drive para almacenar sus cuadernos, asegúrese de haber iniciado sesión en su cuenta de Google Drive antes de continuar.

Step 1 - Abra la siguiente URL en su navegador - https://colab.research.google.com Su navegador mostrará la siguiente pantalla (suponiendo que haya iniciado sesión en su Google Drive):

Step 2 - Haga clic en el NEW PYTHON 3 NOTEBOOKenlace en la parte inferior de la pantalla. Se abrirá una nueva computadora portátil como se muestra en la siguiente pantalla.

Como habrá notado, la interfaz del portátil es bastante similar a la proporcionada en Jupyter. Hay una ventana de código en la que debe ingresar su código Python.

Configuración del nombre del cuaderno

De forma predeterminada, el portátil utiliza la convención de nomenclatura UntitledXX.ipynb. Para cambiar el nombre del cuaderno, haga clic en este nombre y escriba el nombre deseado en el cuadro de edición como se muestra aquí -

Llamaremos a este cuaderno como MyFirstColabNotebook. Así que escriba este nombre en el cuadro de edición y presione ENTER. El cuaderno adquirirá el nombre que le ha dado ahora.

Ingresando código

Ahora ingresará un código Python trivial en la ventana de código y lo ejecutará.

Ingrese las siguientes dos declaraciones de Python en la ventana de código:

import time
print(time.ctime())

Ejecutando código

Para ejecutar el código, haga clic en la flecha del lado izquierdo de la ventana del código.

Después de un tiempo, verá la salida debajo de la ventana de código, como se muestra aquí:

Mon Jun 17 05:58:40 2019

Puede borrar la salida en cualquier momento haciendo clic en el icono en el lado izquierdo de la pantalla de salida.

Agregar celdas de código

Para agregar más código a su computadora portátil, seleccione lo siguiente menu opciones -

Insert / Code Cell

Alternativamente, simplemente coloque el mouse en la parte inferior central de la celda Código. Cuando elCODE y TEXTAparecen los botones, haga clic en el CÓDIGO para agregar una nueva celda. Esto se muestra en la captura de pantalla a continuación:

Se agregará una nueva celda de código debajo de la celda actual. Agregue las siguientes dos declaraciones en la ventana de código recién creada:

time.sleep(5)
print (time.ctime())

Ahora, si ejecuta esta celda, verá el siguiente resultado:

Mon Jun 17 04:50:27 2019

Ciertamente, la diferencia de tiempo entre las dos cadenas de tiempo no es de 5 segundos. Esto es obvio, ya que se tomó un tiempo para insertar el nuevo código. Colab le permite ejecutar todo el código dentro de su computadora portátil sin interrupciones.

Ejecutar todo

Para ejecutar todo el código en su computadora portátil sin interrupciones, ejecute las siguientes opciones de menú:

Runtime / Reset and run all…

Le dará la salida como se muestra a continuación:

Tenga en cuenta que la diferencia de tiempo entre las dos salidas es ahora exactamente de 5 segundos.

La acción anterior también se puede iniciar ejecutando las siguientes dos opciones de menú:

Runtime / Restart runtime…

o

Runtime / Restart all runtimes…

Seguido por

Runtime / Run all

Estudie las diferentes opciones de menú en el Runtime menú para familiarizarse con las diversas opciones disponibles para ejecutar el portátil.

Cambio de orden de celda

Cuando su cuaderno contiene una gran cantidad de celdas de código, puede encontrarse con situaciones en las que le gustaría cambiar el orden de ejecución de estas celdas. Puede hacerlo seleccionando la celda que desea mover y haciendo clic en elUP CELL o DOWN CELL botones que se muestran en la siguiente captura de pantalla:

Puede hacer clic en los botones varias veces para mover la celda en más de una posición.

Eliminando celda

Durante el desarrollo de su proyecto, es posible que haya introducido algunas celdas ahora no deseadas en su cuaderno. Puede eliminar estas celdas de su proyecto fácilmente con un solo clic. Haga clic en el ícono de puntos verticales en la esquina superior derecha de su celda de código.

Clickea en el Delete cell opción y se eliminará la celda actual.

Ahora, como ha aprendido a ejecutar un cuaderno trivial, exploremos las otras capacidades de Colab.

Como la celda de código admite la sintaxis completa de Python, puede usar Python commentsen la ventana de código para describir su código. Sin embargo, muchas veces se necesita más que un simple comentario basado en texto para ilustrar los algoritmos de ML. ML usa mucho las matemáticas y para explicar esos términos y ecuaciones a sus lectores, necesita un editor que admita LaTex, un lenguaje para representaciones matemáticas. Colab ofreceText Cells para este propósito.

En la siguiente captura de pantalla se muestra una celda de texto que contiene pocas ecuaciones matemáticas que se usan normalmente en ML:

A medida que avancemos en este capítulo, veremos el código para generar la salida anterior.

Las celdas de texto se formatean usando markdown- un lenguaje de marcado simple. Veamos ahora cómo agregar celdas de texto a su cuaderno y agregarle texto que contenga ecuaciones matemáticas.

Ejemplos de rebajas

Veamos algunos ejemplos de sintaxis de lenguaje de marcado para demostrar sus capacidades.

Escriba el siguiente texto en la celda Texto.

This is **bold**.
This is *italic*.
This is ~strikethrough~.

La salida de los comandos anteriores se representa en el lado derecho de la celda como se muestra aquí.

Ecuaciones matematicas

Agrega un Text Cell a su cuaderno e ingrese la siguiente sintaxis de rebajas en la ventana de texto:

$\sqrt{3x-1}+(1+x)^2$

Verá la representación inmediata del código de reducción en el panel del lado derecho de la celda de texto. Esto se muestra en la captura de pantalla a continuación:

Golpear Enter y el código de descuento desaparece de la celda de texto y solo se muestra la salida renderizada.

Probemos con otra ecuación más complicada como se muestra aquí:

$e^x = \sum_{i = 0}^\infty \frac{1}{i!}x^i$

La salida renderizada se muestra aquí para su referencia rápida.

Código para ecuaciones muestrales

Aquí está el código para las ecuaciones de muestra que se muestran en una captura de pantalla anterior:

Constraints are
   - $3x_1 + 6x_2 + x_3 =< 28$
   - $7x_1 + 3x_2 + 2x_3 =< 37$
   - $4x_1 + 5x_2 + 2x_3 =< 19$
   - $x_1,x_2,x_3 >=0 $

The trial vector is calculated as follows:
- $u_i(t) = x_i(t) + \beta(\hat{x}(t) − x_i(t)) + \beta \sum_{k = 1}^{n_v}(x_{i1,k}(t) − x_{i2,k}(t))$
$f(x_1, x_2) = 20 + e - 20exp(-0.2 \sqrt {\frac {1}{n} (x_1^2 + x_2^2)}) - exp (\frac {1}{n}(cos(2\pi x_1) + cos(2\pi x_2))$

$x ∈ [-5, 5]$
>$A_{m,n} =
   \begin{pmatrix}
   a_{1,1} > a_{1,2} > \cdots > a_{1,n} \\
   a_{2,1} > a_{2,2} > \cdots > a_{2,n} \\
   \vdots > \vdots > \ddots > \vdots \\
   a_{m,1} > a_{m,2} > \cdots > a_{m,n}
   \end{pmatrix}$

Describir la sintaxis de marcado completa está más allá del alcance de este tutorial. En el próximo capítulo, veremos cómo guardar su trabajo.

Colab le permite guardar su trabajo en Google Drive o incluso directamente en su repositorio de GitHub.

Guardando en Google Drive

Colab le permite guardar su trabajo en su Google Drive. Para guardar su cuaderno, seleccione las siguientes opciones de menú:

File / Save a copy in Drive…

Verá la siguiente pantalla:

La acción creará una copia de su computadora portátil y la guardará en su disco. Más adelante, puede cambiar el nombre de la copia a su elección de nombre.

Guardando en GitHub

También puede guardar su trabajo en su repositorio de GitHub seleccionando las siguientes opciones de menú:

File / Save a copy in GitHub...

La selección del menú se muestra en la siguiente captura de pantalla para su referencia rápida:

Tendrá que esperar hasta que vea la pantalla de inicio de sesión en GitHub.

Ahora, ingrese sus credenciales. Si no tiene un repositorio, cree uno nuevo y guarde su proyecto como se muestra en la captura de pantalla a continuación:

En el próximo capítulo, aprenderemos cómo compartir su trabajo con otros.

Para compartir el cuaderno que ha creado con otros co-desarrolladores, puede compartir la copia que ha hecho en su Google Drive.

Para publicar el cuaderno para el público general, puede compartirlo desde su repositorio de GitHub.

Hay una forma más de compartir tu trabajo y es haciendo clic en el SHAREenlace en la esquina superior derecha de su cuaderno Colab. Esto abrirá el cuadro para compartir como se muestra aquí:

Puede ingresar los ID de correo electrónico de las personas con las que le gustaría compartir el documento actual. Puede configurar el tipo de acceso seleccionando entre las tres opciones que se muestran en la pantalla anterior.

Clickea en el Get shareable linkopción para obtener la URL de su portátil. Encontrará opciones para quién compartir de la siguiente manera:

  • Grupo específico de personas

  • Compañeros de su organización

  • Cualquiera con el link

  • Todo público en la web

Ahora. sabe cómo crear / ejecutar / guardar / compartir un cuaderno. En la celda Código, usamos Python hasta ahora. La celda de código también se puede utilizar para invocar comandos del sistema. Esto se explica a continuación.

Jupyter incluye atajos para muchas operaciones comunes del sistema. La celda Colab Code admite esta función.

Comandos simples

Ingrese el siguiente código en la celda Código que usa el comando del sistema echo.

message = 'A Great Tutorial on Colab by Tutorialspoint!'
greeting = !echo -e '$message\n$message'
greeting

Ahora, si ejecuta la celda, verá el siguiente resultado:

['A Great Tutorial on Colab by Tutorialspoint!', 'A Great Tutorial on Colab by Tutorialspoint!']

Obtener datos remotos

Veamos otro ejemplo que carga el conjunto de datos desde un servidor remoto. Escriba el siguiente comando en su celda de Código:

!wget http://mlr.cs.umass.edu/ml/machine-learning-databases/adult/adult.data -P "/content/drive/My Drive/app"

Si ejecuta el código, verá el siguiente resultado:

--2019-06-20 10:09:53-- http://mlr.cs.umass.edu/ml/machine-learning-databases/adult/adult.data
Resolving mlr.cs.umass.edu (mlr.cs.umass.edu)... 128.119.246.96
Connecting to mlr.cs.umass.edu (mlr.cs.umass.edu)|128.119.246.96|:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: 3974305 (3.8M) [text/plain] 
Saving to: ‘/content/drive/My Drive/app/adult.data.1’

adult.data.1 100%[===================>] 3.79M 1.74MB/s in 2.2s

2019-06-20 10:09:56 (1.74 MB/s) - ‘/content/drive/My Drive/app/adult.data.1’ saved [3974305/3974305]

Como dice el mensaje, el adult.data.1El archivo ahora está agregado a su unidad. Puede verificar esto examinando el contenido de la carpeta de su unidad. Alternativamente, escriba el siguiente código en una nueva celda de Código:

import pandas as pd
data = pd.read_csv("/content/drive/My Drive/app/adult.data.1")
data.head(5)

Ejecute el código ahora y verá el siguiente resultado:

Asimismo, la mayoría de los comandos del sistema pueden invocarse en su celda de código anteponiendo el comando con un signo de exclamación (!). Veamos otro ejemplo antes de dar la lista completa de comandos que puede invocar.

Clonación del repositorio de Git

Puede clonar todo el repositorio de GitHub en Colab usando el gitmando. Por ejemplo, para clonar el tutorial de keras, escriba el siguiente comando en la celda Código:

!git clone https://github.com/wxs/keras-mnist-tutorial.git

Después de una ejecución exitosa del comando, verá el siguiente resultado:

Cloning into 'keras-mnist-tutorial'...
remote: Enumerating objects: 26, done.
remote: Total 26 (delta 0), reused 0 (delta 0), pack-reused 26
Unpacking objects: 100% (26/26), done.

Una vez clonado el repositorio, ubique un proyecto de Jupyter (por ejemplo, MINST en keras.ipyab) en él, haga clic derecho en el nombre del archivo y seleccione Open With / Colaboratory opción de menú para abrir el proyecto en Colab.

Alias ​​del sistema

Para obtener una lista de accesos directos para operaciones comunes, ejecute el siguiente comando:

!ls /bin

Verá la lista en la ventana de salida como se muestra a continuación:

bash*             journalctl*       sync*
bunzip2*          kill*             systemctl*
bzcat*            kmod*             [email protected]
[email protected]            less*             systemd-ask-password*
bzdiff*           lessecho*         systemd-escape*
[email protected]          [email protected]         systemd-hwdb*
bzexe*            lesskey*          systemd-inhibit*
[email protected]          lesspipe*         systemd-machine-id-setup*
bzgrep*           ln*               systemd-notify*
bzip2*            login*            systemd-sysusers*
bzip2recover*     loginctl*         systemd-tmpfiles*
[email protected]           ls*               systemd-tty-ask-password-agent*
bzmore*           lsblk*            tar*
cat*              [email protected]            tempfile*
chgrp*            mkdir*            touch*
chmod*            mknod*            true*
chown*            mktemp*           udevadm*
cp*               more*             ulockmgr_server*
dash*             mount*            umount*
date*             mountpoint*       uname*
dd*               mv*               uncompress*
df*               networkctl*       vdir*
dir*              [email protected]    wdctl*
dmesg*            [email protected]            which*
[email protected]    ps*               [email protected]
[email protected]       pwd*              zcat*
echo*             [email protected]            zcmp*
egrep*            readlink*         zdiff*
false*            rm*               zegrep*
fgrep*            rmdir*            zfgrep*
findmnt*          run-parts*        zforce*
fusermount*       sed*              zgrep*
grep*             [email protected]               zless*
gunzip*           [email protected]       zmore*
gzexe*            sleep*            znew*
gzip*             stty*
hostname*         su*

Ejecute cualquiera de estos comandos como lo hemos hecho para echo y wget. En el próximo capítulo, veremos cómo ejecutar su código Python creado previamente.

Supongamos que ya tiene un código Python desarrollado que está almacenado en su Google Drive. Ahora, querrá cargar este código en Colab para realizar más modificaciones. En este capítulo veremos cómo cargar y ejecutar el código almacenado en tu Google Drive.

Unidad de montaje

Tools / Command palette

Verá la lista de comandos como se muestra en esta captura de pantalla:

Escriba algunas letras como "m" en el cuadro de búsqueda para localizar el comando de montaje. SeleccioneMount Drivecomando de la lista. El siguiente código se insertaría en su celda de Código.

# Run this cell to mount your Google Drive.
from google.colab import drive
drive.mount('/content/drive')

Si ejecuta este código, se le pedirá que ingrese el código de autenticación. La pantalla correspondiente se ve como se muestra a continuación:

Abra la URL anterior en su navegador. Se le pedirá que inicie sesión en su cuenta de Google. Ahora, verá la siguiente pantalla:

Si otorga los permisos, recibirá su código de la siguiente manera:

Corta y pega este código en la celda Código y presiona ENTER. Después de un tiempo, la unidad se montará como se ve en la captura de pantalla a continuación:

Ahora, está listo para usar el contenido de su unidad en Colab.

Listado del contenido de la unidad

Puede enumerar el contenido de la unidad usando el comando ls de la siguiente manera:

!ls "/content/drive/My Drive/Colab Notebooks"

Este comando enumerará el contenido de su carpeta Colab Notebooks. La salida de muestra del contenido de mi unidad se muestra aquí:

Greeting.ipynb hello.py LogisticRegressionCensusData.ipynb LogisticRegressionDigitalOcean.ipynb MyFirstColabNotebook.ipynb SamplePlot.ipynb

Ejecutando código Python

Ahora, digamos que desea ejecutar un archivo de Python llamado hello.py almacenado en su Google Drive. Escriba el siguiente comando en la celda Código:

!python3 "/content/drive/My Drive/Colab Notebooks/hello.py"

El contenido de hello.py se proporciona aquí para su referencia:

print("Welcome to TutorialsPoint!")

Ahora verá el siguiente resultado:

Welcome to TutorialsPoint!

Además de la salida de texto, Colab también es compatible con las salidas gráficas. Veremos esto en el próximo capítulo.

Colab también admite resultados enriquecidos como gráficos. Escriba el siguiente código en la celda Código.

import numpy as np
from matplotlib import pyplot as plt

y = np.random.randn(100)
x = [x for x in range(len(y))]

plt.plot(x, y, '-')
plt.fill_between(x, y, 200, where = (y > 195), facecolor='g', alpha=0.6)

plt.title("Sample Plot")
plt.show()

Ahora, si ejecuta el código, verá el siguiente resultado:

Tenga en cuenta que la salida gráfica se muestra en la sección de salida de la celda Código. Asimismo, podrá crear y mostrar varios tipos de gráficos a lo largo de su código de programa.

Ahora que se ha familiarizado con los conceptos básicos de Colab, pasemos a las funciones de Colab que facilitan el desarrollo de su código Python.

Los desarrolladores actuales dependen en gran medida de la ayuda contextual para el lenguaje y la sintaxis de la biblioteca. Es por eso que los IDE se utilizan ampliamente. El editor de cuadernos de Colab proporciona esta función.

En este capítulo, veamos cómo solicitar ayuda contextual al escribir código Python en Colab. Siga los pasos que se le han dado siempre que sea necesario.

Lista de funciones

Step 1 - Abra un nuevo cuaderno y escriba el siguiente código en la celda Código -

import torch

Step 2- Ejecute el código haciendo clic en el icono Ejecutar en el panel izquierdo de la celda Código. Agregue otra celda de Código y escriba el siguiente código:

Tensor = torch.

En este punto, suponga que ha olvidado cuáles son las diversas funciones disponibles en torchmódulo. Puede solicitar la ayuda contextual sobre los nombres de las funciones pulsando elTABllave. Note la presencia delDOT después de la torchpalabra clave. Sin este DOT, no verá la ayuda contextual. Su pantalla se vería como se muestra en la captura de pantalla aquí:

Ahora, seleccione la función deseada de la lista y continúe con su codificación.

Documentación de funciones

Colab le brinda la documentación sobre cualquier function o class como ayuda sensible al contexto.

Escriba el siguiente código en su ventana de código:

Tensor = torch.cos(

Ahora, golpea TAB y verá la documentación en cosen la ventana emergente como se muestra en la captura de pantalla aquí. Tenga en cuenta que debe escribiropen parenthesis antes de presionar TAB.

En el próximo capítulo, veremos Magics en Colab que nos permite hacer cosas más poderosas que las que hicimos con los alias del sistema.

Magics es un conjunto de comandos del sistema que proporcionan un lenguaje de comandos mini extenso.

Las magias son de dos tipos:

  • Magia de línea

  • Magia celular

La magia de línea como su nombre indica que consiste en una sola línea de comando, mientras que la magia de celda cubre todo el cuerpo de la celda de código.

En el caso de la magia de línea, el comando se antepone con un solo carácter% y en el caso de la magia de celda, se antepone con dos caracteres% (%%).

Veamos algunos ejemplos de ambos para ilustrarlos.

Magia de línea

Escriba el siguiente código en su celda de código:

%ldir

Verá el contenido de su directorio local, algo como esto:

drwxr-xr-x 3 root 4096 Jun 20 10:05 drive/
drwxr-xr-x 1 root 4096 May 31 16:17 sample_data/

Prueba el siguiente comando:

%history

Esto presenta el historial completo de los comandos que ha ejecutado anteriormente.

Magia celular

Escriba el siguiente código en su celda de código:

%%html
<marquee style='width: 50%; color: Green;'>Welcome to Tutorialspoint!</marquee>

Ahora, si ejecuta el código y verá el mensaje de bienvenida que se desplaza en la pantalla como se muestra aquí:

El siguiente código agregará SVG a su documento.

%%html
<svg xmlns="https://www.w3.org/2000/svg" viewBox="0 0 600 400" width="400" height="400">
   <rect x="10" y="00" width="300" height="100" rx="0" style="fill:orange; stroke:black; fill-opacity:1.0" />
   <rect x="10" y="100" width="300" height="100" rx="0" style="fill:white; stroke:black; fill-opacity:1.0;" />
   <rect x="10" y="200" width="300" height="100" rx="0" style="fill:green; stroke:black; fill-opacity:1.0;" />
</svg>

Si ejecuta el código, verá el siguiente resultado:

Lista de Magias

Para obtener una lista completa de las magias admitidas, ejecute el siguiente comando:

%lsmagic

Verá la siguiente salida:

Available line magics:
%alias %alias_magic %autocall %automagic %autosave %bookmark %cat %cd %clear
%colors %config %connect_info %cp %debug %dhist %dirs %doctest_mode %ed %edit
%env %gui %hist %history %killbgscripts %ldir %less %lf %lk %ll %load %load_ext
%loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %lx %macro
%magic %man %matplotlib %mkdir %more %mv %notebook %page %pastebin %pdb %pdef
%pdoc %pfile %pinfo %pinfo2 %pip %popd %pprint %precision %profile %prun
%psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall
%rehashx %reload_ext %rep %rerun %reset %reset_selective %rm %rmdir %run %save
%sc %set_env %shell %store %sx %system %tb %tensorflow_version %time %timeit
%unalias %unload_ext %who %who_ls %whos %xdel %xmode

Available cell magics:
%%! %%HTML %%SVG %%bash %%bigquery %%capture %%debug %%file %%html %%javascript
%%js %%latex %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script
%%sh %%shell %%svg %%sx %%system %%time %%timeit %%writefile

Automagic is ON, % prefix IS NOT needed for line magics.

A continuación, aprenderá otra característica poderosa en Colab para configurar las variables del programa en tiempo de ejecución.

Colab proporciona una utilidad muy útil llamada Forms que le permite aceptar entradas del usuario en tiempo de ejecución. Pasemos ahora a ver cómo agregar formularios a su cuaderno.

Agregar formulario

En una lección anterior, usó el siguiente código para crear un retraso de tiempo:

import time
print(time.ctime())
time.sleep(5)
print (time.ctime())

Supongamos que desea un retraso de tiempo establecido por el usuario en lugar de un retraso fijo de 5 segundos. Para esto, puede agregar un formulario a la celda Código para aceptar el tiempo de suspensión.

Abra un nuevo cuaderno. Clickea en elOptionsmenú (con puntos verticales). Aparece un menú emergente como se ve en la captura de pantalla a continuación:

Ahora, seleccione Add a formopción. Agregará el formulario a su celda de Código con un título predeterminado como se ve en la captura de pantalla aquí:

Para cambiar el título del formulario, haga clic en el Settingsbotón (icono de lápiz a la derecha). Aparecerá una pantalla de configuración como se muestra aquí:

Cambie el título del formulario a “Form”y guarde el formulario. Puede usar otro nombre de su elección. Observe que agrega el@title a su celda de código.

Puede explorar otras opciones en la pantalla anterior más adelante. En la siguiente sección, aprenderemos cómo agregar campos de entrada al formulario.

Agregar campos de formulario

Para agregar un campo de formulario, haga clic en el Options menú en la celda Código, haga clic en el Formpara revelar los submenús. La pantalla se verá como se muestra a continuación:

Seleccione Add a form fieldopción de menú. Aparece un cuadro de diálogo como se ve aquí:

Deja el Form field type a input. Cambiar el Variable name a sleeptime y establecer el Variable type a integer. Guarde los cambios haciendo clic en elSave botón.

Su pantalla ahora se verá como la siguiente con el sleeptime variable agregada en el código.

A continuación, veamos cómo probar el formulario agregando un código que usa el sleeptime variable.

Formulario de prueba

Agregue una nueva celda de Código debajo de la celda del formulario. Utilice el código que se proporciona a continuación:

import time
print(time.ctime())
time.sleep(sleeptime)
print (time.ctime())

Usó este código en la lección anterior. Imprime la hora actual, espera una cierta cantidad de tiempo e imprime una nueva marca de tiempo. La cantidad de tiempo que espera el programa se establece en la variable llamadasleeptime.

Ahora, regrese al Form Celda y escriba un valor de 2 para sleeptime. Seleccione el siguiente menú -

Runtime / Run all

Esto ejecuta todo el cuaderno. Puede ver una pantalla de salida como se muestra a continuación.

Observe que ha tomado su valor de entrada de 2 para el

hora de dormir

. Intente cambiar esto a un valor diferente y Run all para ver su efecto.

Ingresando texto

Para aceptar una entrada de texto en su formulario, ingrese el siguiente código en una nueva celda de código.

name = 'Tutorialspoint' #@param {type:"string"}
print(name)

Ahora, si ejecuta la celda Código, cualquiera que sea el nombre que establezca en el formulario se imprimirá en la pantalla. De forma predeterminada, la siguiente salida aparecería en la pantalla.

Tutorialspoint

Tenga en cuenta que puede utilizar las opciones del menú como se muestra para la entrada de entero para crear un Text campo de entrada.

La lista desplegable

Para agregar una lista desplegable a su formulario, use el siguiente código:

color = 'green' #@param ["red", "green", "blue"]
print(color)

Esto crea una lista desplegable con tres valores: rojo, verde y azul. La selección predeterminada es verde.

La lista desplegable se muestra en la captura de pantalla a continuación:

Entrada de fecha

Colab Form le permite aceptar fechas en su código con validaciones. Use el siguiente código para ingresar la fecha en su código.

#@title Date fields
date_input = '2019-06-03' #@param {type:"date"}
print(date_input)

La pantalla de formulario tiene el siguiente aspecto.

Intente ingresar un valor de fecha incorrecto y observe las validaciones.

Hasta ahora, ha aprendido a usar Colab para crear y ejecutar cuadernos de Jupyter con su código Python. En el próximo capítulo, veremos cómo instalar bibliotecas ML populares en su cuaderno para que pueda usarlas en su código Python.

Colab es compatible con la mayoría de las bibliotecas de aprendizaje automático disponibles en el mercado. En este capítulo, veamos cómo instalar estas bibliotecas en su portátil Colab.

Para instalar una biblioteca, puede usar cualquiera de estas opciones:

!pip install

o

!apt-get install

Keras

Keras, escrito en Python, se ejecuta sobre TensorFlow, CNTK o Theano. Permite la creación de prototipos fácil y rápida de aplicaciones de redes neuronales. Admite tanto redes convolucionales (CNN) como redes recurrentes, y también sus combinaciones. Es compatible con GPU sin problemas.

Para instalar Keras, use el siguiente comando:

!pip install -q keras

PyTorch

PyTorch es ideal para desarrollar aplicaciones de aprendizaje profundo. Es una biblioteca de tensores optimizada y está habilitada para GPU. Para instalar PyTorch, use el siguiente comando:

!pip3 install torch torchvision

MxNet

Apache MxNet es otra biblioteca flexible y eficiente para el aprendizaje profundo. Para instalar MxNet, ejecute los siguientes comandos:

!apt install libnvrtc8.0
!pip install mxnet-cu80

OpenCV

OpenCV es una biblioteca de visión artificial de código abierto para desarrollar aplicaciones de aprendizaje automático. Tiene más de 2500 algoritmos optimizados que admiten varias aplicaciones, como reconocer caras, identificar objetos, rastrear objetos en movimiento, unir imágenes, etc. Gigantes como Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota usan esta biblioteca. Esto es muy adecuado para desarrollar aplicaciones de visión en tiempo real.

Para instalar OpenCV use el siguiente comando:

!apt-get -qq install -y libsm6 libxext6 && pip install -q -U opencv-python

XGBoost

XGBoost es una biblioteca distribuida que impulsa el gradiente que se ejecuta en los principales entornos distribuidos como Hadoop. Es muy eficiente, flexible y portátil. Implementa algoritmos ML bajo el marco Gradient Boosting.

Para instalar XGBoost, use el siguiente comando:

!pip install -q xgboost==0.4a30

GraphViz

Graphviz es un software de código abierto para visualizaciones de gráficos. Se utiliza para visualización en redes, bioinformática, diseño de bases de datos y, para el caso, en muchos dominios donde se desea una interfaz visual de los datos.

Para instalar GraphViz, use el siguiente comando:

!apt-get -qq install -y graphviz && pip install -q pydot

En este momento, ha aprendido a crear cuadernos de Jupyter que contienen bibliotecas de aprendizaje automático populares. Ahora está listo para desarrollar sus modelos de aprendizaje automático. Esto requiere una gran potencia de procesamiento. Colab ofrece GPU gratuita para sus portátiles.

En el próximo capítulo, aprenderemos cómo habilitar la GPU para su computadora portátil.

Google proporciona el uso de GPU gratuita para sus portátiles Colab.

Habilitación de GPU

Para habilitar la GPU en su computadora portátil, seleccione las siguientes opciones de menú:

Runtime / Change runtime type

Verá la siguiente pantalla como salida:

Seleccione GPUy su computadora portátil usaría la GPU gratuita proporcionada en la nube durante el procesamiento. Para familiarizarse con el procesamiento de la GPU, intente ejecutar la aplicación de muestra desdeMNIST tutorial que clonó anteriormente.

!python3 "/content/drive/My Drive/app/mnist_cnn.py"

Intente ejecutar el mismo archivo de Python sin la GPU habilitada. ¿Notó la diferencia en la velocidad de ejecución?

Prueba de GPU

Puede verificar fácilmente si la GPU está habilitada ejecutando el siguiente código:

import tensorflow as tf
tf.test.gpu_device_name()

Si la GPU está habilitada, dará el siguiente resultado:

'/device:GPU:0'

Listado de dispositivos

Si tiene curiosidad por conocer los dispositivos utilizados durante la ejecución de su computadora portátil en la nube, pruebe el siguiente código:

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

Verá la salida de la siguiente manera:

[name: "/device:CPU:0"
   device_type: "CPU"
   memory_limit: 268435456
   locality { }
   incarnation: 1734904979049303143, name: "/device:XLA_CPU:0"
   device_type: "XLA_CPU" memory_limit: 17179869184
   locality { } 
   incarnation: 16069148927281628039
   physical_device_desc: "device: XLA_CPU device", name: "/device:XLA_GPU:0"
   device_type: "XLA_GPU"
   memory_limit: 17179869184
   locality { }
   incarnation: 16623465188569787091
   physical_device_desc: "device: XLA_GPU device", name: "/device:GPU:0"
   device_type: "GPU"
   memory_limit: 14062547764
   locality {
      bus_id: 1
      links { } 
   }
   incarnation: 6674128802944374158
physical_device_desc: "device: 0, name: Tesla T4, pci bus id: 0000:00:04.0, compute capability: 7.5"]

Comprobando RAM

Para ver los recursos de memoria disponibles para su proceso, escriba el siguiente comando:

!cat /proc/meminfo

Verá la siguiente salida:

MemTotal: 13335276 kB
MemFree: 7322964 kB
MemAvailable: 10519168 kB
Buffers: 95732 kB
Cached: 2787632 kB
SwapCached: 0 kB
Active: 2433984 kB
Inactive: 3060124 kB
Active(anon): 2101704 kB
Inactive(anon): 22880 kB
Active(file): 332280 kB
Inactive(file): 3037244 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 412 kB
Writeback: 0 kB
AnonPages: 2610780 kB
Mapped: 838200 kB
Shmem: 23436 kB
Slab: 183240 kB
SReclaimable: 135324 kB
SUnreclaim: 47916
kBKernelStack: 4992 kB
PageTables: 13600 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 6667636 kB
Committed_AS: 4801380 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 303092 kB
DirectMap2M: 5988352 kB
DirectMap1G: 9437184 kB

Ahora está todo listo para el desarrollo de modelos de aprendizaje automático en Python usando Google Colab.

Google Colab es una plataforma poderosa para aprender y desarrollar rápidamente modelos de aprendizaje automático en Python. Está basado en el cuaderno Jupyter y es compatible con el desarrollo colaborativo. Los miembros del equipo pueden compartir y editar simultáneamente los cuadernos, incluso de forma remota. Los cuadernos también se pueden publicar en GitHub y compartir con el público en general. Colab admite muchas bibliotecas ML populares como PyTorch, TensorFlow, Keras y OpenCV. La restricción a partir de hoy es que aún no es compatible con R o Scala. También hay una limitación de sesiones y tamaño. Teniendo en cuenta los beneficios, estos son pequeños sacrificios que uno debe hacer.