Google Colab - Guia rápido

O Google é bastante agressivo em pesquisas de IA. Ao longo de muitos anos, o Google desenvolveu uma estrutura de IA chamadaTensorFlow e uma ferramenta de desenvolvimento chamada Colaboratory. Hoje, o TensorFlow é de código aberto e, desde 2017, o Google tornou o Colaboratory gratuito para uso público. Colaboratory agora é conhecido como Google Colab ou simplesmenteColab.

Outro atrativo que o Google oferece aos desenvolvedores é o uso de GPU. O Colab suporta GPU e é totalmente gratuito. As razões para torná-lo gratuito para o público poderiam ser tornar seu software um padrão na academia para o ensino de aprendizado de máquina e ciência de dados. Também pode ter uma perspectiva de longo prazo de construir uma base de clientes para APIs do Google Cloud, que são vendidas por uso.

Independentemente dos motivos, a introdução do Colab facilitou o aprendizado e o desenvolvimento de aplicativos de aprendizado de máquina.

Então, vamos começar com o Colab.

Se você usou Jupyternotebook anteriormente, você aprenderia rapidamente a usar o Google Colab. Para ser mais preciso, o Colab é um ambiente de notebook Jupyter gratuito que funciona inteiramente na nuvem. Mais importante ainda, não requer configuração e os blocos de notas que você cria podem ser editados simultaneamente pelos membros da sua equipe - da mesma forma que você edita documentos no Google Docs. Colab oferece suporte a muitas bibliotecas de aprendizado de máquina populares que podem ser facilmente carregadas em seu notebook.

O que Colab oferece a você?

Como programador, você pode realizar o seguinte usando o Google Colab.

  • Escreva e execute código em Python

  • Documente o seu código que suporta equações matemáticas

  • Criar / Carregar / Compartilhar blocos de anotações

  • Importar / Salvar notebooks de / para o Google Drive

  • Importar / publicar notebooks do GitHub

  • Importar conjuntos de dados externos, por exemplo, do Kaggle

  • Integrar PyTorch, TensorFlow, Keras, OpenCV

  • Serviço de nuvem grátis com GPU grátis

Neste capítulo, você criará e executará seu primeiro bloco de notas trivial. Siga as etapas fornecidas sempre que necessário.

Note - Como o Colab usa implicitamente o Google Drive para armazenar seus notebooks, certifique-se de estar conectado à sua conta do Google Drive antes de prosseguir.

Step 1 - Abra o seguinte URL em seu navegador - https://colab.research.google.com Seu navegador exibiria a seguinte tela (supondo que você esteja conectado ao Google Drive) -

Step 2 - Clique no NEW PYTHON 3 NOTEBOOKlink na parte inferior da tela. Um novo bloco de notas abriria conforme mostrado na tela abaixo.

Como você deve ter notado, a interface do notebook é bastante semelhante à fornecida no Jupyter. Há uma janela de código na qual você deve inserir seu código Python.

Configurando o nome do notebook

Por padrão, o notebook usa a convenção de nomenclatura UntitledXX.ipynb. Para renomear o bloco de notas, clique neste nome e digite o nome desejado na caixa de edição conforme mostrado aqui -

Chamaremos este caderno de MyFirstColabNotebook. Portanto, digite este nome na caixa de edição e pressione ENTER. O bloco de notas irá adquirir o nome que você deu agora.

Inserindo Código

Agora você irá inserir um código Python trivial na janela de código e executá-lo.

Insira as seguintes duas instruções Python na janela de código -

import time
print(time.ctime())

Código de Execução

Para executar o código, clique na seta à esquerda da janela de código.

Depois de um tempo, você verá a saída abaixo da janela de código, conforme mostrado aqui -

Mon Jun 17 05:58:40 2019

Você pode limpar a saída a qualquer momento clicando no ícone do lado esquerdo da exibição de saída.

Adicionando Células de Código

Para adicionar mais código ao seu notebook, selecione o seguinte menu opções -

Insert / Code Cell

Como alternativa, basta passar o mouse na parte inferior central da célula Código. Quando oCODE e TEXTbotões aparecerem, clique no CÓDIGO para adicionar uma nova célula. Isso é mostrado na imagem abaixo -

Uma nova célula de código será adicionada abaixo da célula atual. Adicione as duas instruções a seguir na janela de código recém-criada -

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

Agora, se você executar esta célula, verá a seguinte saída -

Mon Jun 17 04:50:27 2019

Certamente, a diferença de tempo entre as duas sequências de tempo não é de 5 segundos. Isso é óbvio, pois você levou algum tempo para inserir o novo código. O Colab permite que você execute todo o código dentro do seu notebook sem interrupção.

Executar tudo

Para executar todo o código em seu notebook sem interrupção, execute as seguintes opções de menu -

Runtime / Reset and run all…

Ele lhe dará a saída conforme mostrado abaixo -

Observe que a diferença de tempo entre as duas saídas agora é de exatamente 5 segundos.

A ação acima também pode ser iniciada executando as duas opções de menu a seguir -

Runtime / Restart runtime…

ou

Runtime / Restart all runtimes…

Seguido por

Runtime / Run all

Estude as diferentes opções de menu sob o Runtime menu para se familiarizar com as várias opções disponíveis para a execução do notebook.

Alteração da ordem das células

Quando seu bloco de notas contém um grande número de células de código, você pode se deparar com situações em que gostaria de alterar a ordem de execução dessas células. Você pode fazer isso selecionando a célula que deseja mover e clicando noUP CELL ou DOWN CELL botões mostrados na imagem a seguir -

Você pode clicar nos botões várias vezes para mover a célula para mais de uma posição.

Excluindo Célula

Durante o desenvolvimento de seu projeto, você pode ter introduzido algumas células indesejadas em seu caderno. Você pode remover essas células do seu projeto facilmente com um único clique. Clique no ícone pontilhado vertical no canto superior direito da célula de código.

Clique no Delete cell opção e a célula atual será excluída.

Agora, como você aprendeu a executar um notebook trivial, vamos explorar os outros recursos do Colab.

Como a célula de código suporta sintaxe Python completa, você pode usar Python commentsna janela de código para descrever seu código. No entanto, muitas vezes você precisa de mais do que simples comentários baseados em texto para ilustrar os algoritmos de ML. O ML usa intensamente a matemática e, para explicar esses termos e equações aos seus leitores, você precisa de um editor que ofereça suporte a LaTex - uma linguagem para representações matemáticas. Colab forneceText Cells para este propósito.

Uma célula de texto contendo algumas equações matemáticas normalmente usadas no ML é mostrada na imagem abaixo -

Conforme avançamos neste capítulo, veremos o código para gerar a saída acima.

As células de texto são formatadas usando markdown- uma linguagem de marcação simples. Vamos agora ver como adicionar células de texto ao seu caderno e adicionar a ele algum texto contendo equações matemáticas.

Exemplos de Markdown

Vejamos alguns exemplos de sintaxe de linguagem de marcação para demonstrar seus recursos.

Digite o seguinte texto na célula Texto.

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

A saída dos comandos acima é renderizada no lado direito da célula, conforme mostrado aqui.

Equações Matemáticas

Adicione um Text Cell ao seu bloco de notas e digite a seguinte sintaxe de marcação na janela de texto -

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

Você verá a renderização imediata do código de redução no painel do lado direito da célula de texto. Isso é mostrado na imagem abaixo -

Bater Enter e o código de redução desaparece da célula de texto e apenas a saída renderizada é mostrada.

Vamos tentar outra equação mais complicada, como mostrado aqui -

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

A saída renderizada é mostrada aqui para sua referência rápida.

Código para equações de amostra

Aqui está o código para as equações de amostra mostradas em uma captura de tela 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}$

Descrever a sintaxe de marcação completa está além do escopo deste tutorial. No próximo capítulo, veremos como salvar seu trabalho.

O Colab permite que você salve seu trabalho no Google Drive ou até mesmo diretamente em seu repositório GitHub.

Salvando no Google Drive

O Colab permite que você salve seu trabalho no Google Drive. Para salvar seu bloco de notas, selecione as seguintes opções de menu -

File / Save a copy in Drive…

Você verá a seguinte tela -

A ação irá criar uma cópia do seu notebook e salvá-la em sua unidade. Mais tarde, você pode renomear a cópia com o nome de sua escolha.

Salvando no GitHub

Você também pode salvar seu trabalho no repositório GitHub, selecionando as seguintes opções de menu -

File / Save a copy in GitHub...

A seleção do menu é mostrada na imagem a seguir para sua referência rápida -

Você terá que esperar até ver a tela de login do GitHub.

Agora, insira suas credenciais. Se você não tem um repositório, crie um novo e salve seu projeto como mostrado na imagem abaixo -

No próximo capítulo, aprenderemos como compartilhar seu trabalho com outras pessoas.

Para compartilhar o bloco de notas que você criou com outros co-desenvolvedores, você pode compartilhar a cópia que você fez no seu Google Drive.

Para publicar o bloco de notas para o público em geral, você pode compartilhá-lo de seu repositório GitHub.

Existe mais uma maneira de compartilhar seu trabalho, clicando no botão SHARElink no canto superior direito do seu caderno Colab. Isso abrirá a caixa de compartilhamento conforme mostrado aqui -

Você pode inserir os IDs de e-mail das pessoas com as quais gostaria de compartilhar o documento atual. Você pode definir o tipo de acesso selecionando uma das três opções mostradas na tela acima.

Clique no Get shareable linkopção para obter a URL do seu notebook. Você encontrará opções para compartilhar da seguinte forma -

  • Grupo de pessoas especificado

  • Colegas em sua organização

  • Qualquer pessoa com o link

  • Todo público na web

Agora. você sabe como criar / executar / salvar / compartilhar um notebook. Na célula de código, usamos Python até agora. A célula de código também pode ser usada para chamar comandos do sistema. Isso é explicado a seguir.

O Jupyter inclui atalhos para muitas operações comuns do sistema. A célula do código Colab suporta este recurso.

Comandos Simples

Insira o código a seguir na célula Código que usa o eco de comando do sistema.

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

Agora, se você executar a célula, verá a seguinte saída -

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

Obtendo Dados Remotos

Vejamos outro exemplo que carrega o conjunto de dados de um servidor remoto. Digite o seguinte comando em sua célula de código -

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

Se você executar o código, verá a seguinte saída -

--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 diz a mensagem, o adult.data.1arquivo agora está adicionado à sua unidade. Você pode verificar isso examinando o conteúdo da pasta de sua unidade. Como alternativa, digite o seguinte código em uma nova célula de código -

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

Execute o código agora e você verá a seguinte saída -

Da mesma forma, a maioria dos comandos do sistema podem ser chamados em sua célula de código, acrescentando um ponto de exclamação (!) Ao comando. Vejamos outro exemplo antes de fornecer a lista completa de comandos que você pode invocar.

Clonando Repositório Git

Você pode clonar todo o repositório GitHub no Colab usando o gitcomando. Por exemplo, para clonar o tutorial keras, digite o seguinte comando na célula Código -

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

Após uma execução bem-sucedida do comando, você veria a seguinte saída -

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.

Depois que o repo for clonado, localize um projeto Jupyter (por exemplo, MINST em keras.ipyab) nele, clique com o botão direito no nome do arquivo e selecione Open With / Colaboratory opção de menu para abrir o projeto no Colab.

Aliases de sistema

Para obter uma lista de atalhos para operações comuns, execute o seguinte comando -

!ls /bin

Você verá a lista na janela de saída conforme mostrado abaixo -

bash*             journalctl*       sync*
bunzip2*          kill*             systemctl*
bzcat*            kmod*             systemd@
bzcmp@            less*             systemd-ask-password*
bzdiff*           lessecho*         systemd-escape*
bzegrep@          lessfile@         systemd-hwdb*
bzexe*            lesskey*          systemd-inhibit*
bzfgrep@          lesspipe*         systemd-machine-id-setup*
bzgrep*           ln*               systemd-notify*
bzip2*            login*            systemd-sysusers*
bzip2recover*     loginctl*         systemd-tmpfiles*
bzless@           ls*               systemd-tty-ask-password-agent*
bzmore*           lsblk*            tar*
cat*              lsmod@            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*              nisdomainname@    wdctl*
dmesg*            pidof@            which*
dnsdomainname@    ps*               ypdomainname@
domainname@       pwd*              zcat*
echo*             rbash@            zcmp*
egrep*            readlink*         zdiff*
false*            rm*               zegrep*
fgrep*            rmdir*            zfgrep*
findmnt*          run-parts*        zforce*
fusermount*       sed*              zgrep*
grep*             sh@               zless*
gunzip*           sh.distrib@       zmore*
gzexe*            sleep*            znew*
gzip*             stty*
hostname*         su*

Execute qualquer um desses comandos como fizemos para echo e wget. No próximo capítulo, veremos como executar o código Python criado anteriormente.

Suponha que você já tenha desenvolvido algum código Python que está armazenado em seu Google Drive. Agora, você gostaria de carregar este código no Colab para futuras modificações. Neste capítulo, veremos como carregar e executar o código armazenado em seu Google Drive.

Unidade de montagem

Tools / Command palette

Você verá a lista de comandos conforme mostrado nesta captura de tela -

Digite algumas letras como “m” na caixa de pesquisa para localizar o comando de montagem. SelecioneMount Drivecomando da lista. O código a seguir seria inserido em sua célula de código.

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

Se você executar este código, será solicitado que insira o código de autenticação. A tela correspondente se parece com a mostrada abaixo -

Abra o URL acima em seu navegador. Você será solicitado a fazer login em sua conta do Google. Agora, você verá a seguinte tela -

Se você conceder as permissões, receberá seu código da seguinte forma -

Recorte e cole este código na célula Código e pressione ENTER. Depois de um tempo, a unidade será montada como pode ser visto na imagem abaixo -

Agora você está pronto para usar o conteúdo do seu disco no Colab.

Listagem de conteúdo da unidade

Você pode listar o conteúdo da unidade usando o comando ls da seguinte forma -

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

Este comando irá listar o conteúdo de sua pasta de Notebooks Colab. O exemplo de saída do conteúdo da minha unidade é mostrado aqui -

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

Executando o código Python

Agora, digamos que você deseja executar um arquivo Python chamado hello.py armazenado em seu Google Drive. Digite o seguinte comando na célula Código -

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

O conteúdo de hello.py é fornecido aqui para sua referência -

print("Welcome to TutorialsPoint!")

Você verá agora a seguinte saída -

Welcome to TutorialsPoint!

Além da saída de texto, Colab também suporta as saídas gráficas. Veremos isso no próximo capítulo.

Colab também oferece suporte a resultados avançados, como gráficos. Digite o seguinte código na célula 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()

Agora, se você executar o código, verá a seguinte saída -

Observe que a saída gráfica é mostrada na seção de saída da célula Código. Da mesma forma, você poderá criar e exibir vários tipos de gráficos em todo o código do programa.

Agora, como você se familiarizou com os fundamentos do Colab, vamos passar para os recursos do Colab que tornam o desenvolvimento de código Python mais fácil.

Os desenvolvedores atuais dependem muito da ajuda sensível ao contexto para a linguagem e as sintaxes da biblioteca. É por isso que os IDEs são amplamente utilizados. O editor de notebook Colab oferece esse recurso.

Neste capítulo, vamos ver como pedir ajuda contextual ao escrever código Python no Colab. Siga as etapas fornecidas sempre que necessário.

Lista de funções

Step 1 - Abra um novo bloco de notas e digite o seguinte código na célula Código -

import torch

Step 2- Execute o código clicando no ícone Executar no painel esquerdo da célula Código. Adicione outra célula de código e digite o seguinte código -

Tensor = torch.

Neste ponto, suponha que você tenha esquecido quais são as várias funções disponíveis em torchmódulo. Você pode pedir ajuda contextual sobre os nomes das funções clicando noTABchave. Observe a presença doDOT depois de torchpalavra-chave. Sem este DOT, você não verá a ajuda de contexto. Sua tela seria semelhante à mostrada na captura de tela aqui -

Agora, selecione a função desejada na lista e prossiga com sua codificação.

Documentação de função

O Colab fornece a documentação sobre qualquer function ou class como uma ajuda sensível ao contexto.

Digite o seguinte código na janela de código -

Tensor = torch.cos(

Agora bate TAB e você verá a documentação sobre cosna janela pop-up conforme mostrado na imagem aqui. Observe que você precisa digitaropen parenthesis antes de clicar em TAB.

No próximo capítulo, veremos Magics no Colab que nos permite fazer coisas mais poderosas do que o que fizemos com apelidos de sistema.

Magics é um conjunto de comandos do sistema que fornece uma minigrau linguagem de comando extensa.

Magias são de dois tipos -

  • Magias de linha

  • Magia celular

A magia da linha como o nome indica que consiste em uma única linha de comando, enquanto a magia da célula cobre todo o corpo do código da célula.

No caso de magias de linha, o comando é prefixado com um único caractere% e no caso de magias de células, é prefixado com dois caracteres% (%%).

Vejamos alguns exemplos de ambos para ilustrar isso.

Line Magics

Digite o seguinte código na sua célula de código -

%ldir

Você verá o conteúdo do seu diretório local, mais ou menos assim -

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

Tente o seguinte comando -

%history

Isso apresenta o histórico completo dos comandos que você executou anteriormente.

Cell Magics

Digite o seguinte código em sua célula de código -

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

Agora, se você executar o código e verá a mensagem de boas-vindas de rolagem na tela, conforme mostrado aqui -

O código a seguir adicionará SVG ao seu 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>

Se você executar o código, verá a seguinte saída -

Lista de Magics

Para obter uma lista completa de magias suportadas, execute o seguinte comando -

%lsmagic

Você verá a seguinte saída -

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 seguir, você aprenderá outro recurso poderoso do Colab para definir as variáveis ​​do programa em tempo de execução.

O Colab fornece um utilitário muito útil chamado Forms que permite aceitar entradas do usuário em tempo de execução. Vamos agora ver como adicionar formulários ao seu bloco de notas.

Adicionando Formulário

Em uma lição anterior, você usou o seguinte código para criar um atraso de tempo -

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

Suponha que você queira um atraso de tempo definido pelo usuário em vez de um atraso fixo de 5 segundos. Para isso, você pode adicionar um Form à célula Code para aceitar o tempo de hibernação.

Abra um novo caderno. Clique noOptionsmenu (pontilhado verticalmente). Um menu pop-up aparece como visto na imagem abaixo -

Agora, selecione Add a formopção. Ele adicionará o formulário à sua célula de código com um título padrão, como visto na imagem aqui -

Para alterar o título do formulário, clique no Settingsbotão (ícone de lápis à direita). Uma tela de configurações será exibida, conforme mostrado aqui:

Altere o título do formulário para “Form”e salve o formulário. Você pode usar algum outro nome de sua escolha. Observe que adiciona o@title para sua célula de código.

Você pode explorar outras opções na tela acima posteriormente. Na próxima seção, aprenderemos como adicionar campos de entrada ao formulário.

Adicionar campos de formulário

Para adicionar um campo de formulário, clique no Options menu na célula Código, clique no Formpara revelar os submenus. A tela será semelhante à mostrada abaixo -

Selecione Add a form fieldopção de menu. Uma caixa de diálogo é exibida, conforme visto aqui -

Deixe o Form field type para input. Mudar o Variable name para sleeptime e definir o Variable type para integer. Salve as alterações clicando noSave botão.

Sua tela agora terá a seguinte aparência com o sleeptime variável adicionada ao código.

A seguir, vamos ver como testar o formulário adicionando algum código que usa o sleeptime variável.

Formulário de Teste

Adicione uma nova célula de código abaixo da célula do formulário. Use o código fornecido abaixo -

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

Você usou este código na lição anterior. Ele imprime a hora atual, espera um determinado período de tempo e imprime um novo carimbo de data / hora. A quantidade de tempo que o programa espera é definida na variável chamadasleeptime.

Agora, volte para o Form Célula e digite um valor de 2 para o sleeptime. Selecione o seguinte menu -

Runtime / Run all

Isso executa todo o notebook. Você pode ver uma tela de saída conforme mostrado abaixo.

Observe que tomou seu valor de entrada de 2 para o

hora de dormir

. Tente mudar isso para um valor diferente e Run all para ver seu efeito.

Entrada de Texto

Para aceitar uma entrada de texto em seu formulário, insira o código a seguir em uma nova célula de código.

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

Agora, se você executar a célula Code, qualquer que seja o nome definido no formulário, será impresso na tela. Por padrão, a seguinte saída apareceria na tela.

Tutorialspoint

Observe que você pode usar as opções do menu conforme mostrado para a entrada de inteiro para criar um Text campo de entrada.

Lista suspensa

Para adicionar uma lista suspensa ao seu formulário, use o seguinte código -

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

Isso cria uma lista suspensa com três valores - vermelho, verde e azul. A seleção padrão é verde.

A lista suspensa é mostrada na imagem abaixo -

Entrada de data

O Formulário Colab permite que você aceite datas em seu código com validações. Use o seguinte código para inserir a data em seu código.

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

A tela Formulário tem a seguinte aparência.

Tente inserir um valor de data errado e observe as validações.

Até agora, você aprendeu como usar o Colab para criar e executar blocos de anotações Jupyter com seu código Python. No próximo capítulo, veremos como instalar bibliotecas populares de ML em seu notebook para que você possa usá-las em seu código Python.

O Colab oferece suporte à maioria das bibliotecas de aprendizado de máquina disponíveis no mercado. Neste capítulo, vamos dar uma rápida visão geral de como instalar essas bibliotecas em seu notebook Colab.

Para instalar uma biblioteca, você pode usar qualquer uma destas opções -

!pip install

ou

!apt-get install

Keras

Keras, escrito em Python, é executado em TensorFlow, CNTK ou Theano. Ele permite a prototipagem fácil e rápida de aplicativos de rede neural. Suporta redes convolucionais (CNN) e redes recorrentes, e também suas combinações. Suporta perfeitamente GPU.

Para instalar o Keras, use o seguinte comando -

!pip install -q keras

PyTorch

PyTorch é ideal para o desenvolvimento de aplicativos de aprendizado profundo. É uma biblioteca de tensores otimizada e habilitada para GPU. Para instalar o PyTorch, use o seguinte comando -

!pip3 install torch torchvision

MxNet

Apache MxNet é outra biblioteca flexível e eficiente para aprendizado profundo. Para instalar o MxNet, execute os seguintes comandos -

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

OpenCV

OpenCV é uma biblioteca de visão computacional de código aberto para o desenvolvimento de aplicativos de aprendizado de máquina. Possui mais de 2500 algoritmos otimizados que oferecem suporte a vários aplicativos, como reconhecimento de faces, identificação de objetos, rastreamento de objetos em movimento, montagem de imagens e assim por diante. Gigantes como Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota usam essa biblioteca. Isso é altamente adequado para o desenvolvimento de aplicativos de visão em tempo real.

Para instalar o OpenCV, use o seguinte comando -

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

XGBoost

XGBoost é uma biblioteca de aumento de gradiente distribuída que é executada nos principais ambientes distribuídos, como Hadoop. É altamente eficiente, flexível e portátil. Ele implementa algoritmos de ML no framework Gradient Boosting.

Para instalar o XGBoost, use o seguinte comando -

!pip install -q xgboost==0.4a30

GraphViz

Graphviz é um software de código aberto para visualizações de gráficos. Ele é usado para visualização em redes, bioinformática, design de banco de dados e em muitos domínios onde uma interface visual dos dados é desejada.

Para instalar o GraphViz, use o seguinte comando -

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

A essa altura, você aprendeu a criar blocos de anotações Jupyter contendo bibliotecas populares de aprendizado de máquina. Agora você está pronto para desenvolver seus modelos de aprendizado de máquina. Isso requer alto poder de processamento. Colab oferece GPU grátis para seus notebooks.

No próximo capítulo, aprenderemos como habilitar GPU para seu notebook.

O Google fornece o uso de GPU grátis para seus notebooks Colab.

Habilitando GPU

Para habilitar a GPU em seu notebook, selecione as seguintes opções de menu -

Runtime / Change runtime type

Você verá a seguinte tela como saída -

Selecione GPUe seu notebook usaria a GPU gratuita fornecida na nuvem durante o processamento. Para ter uma ideia do processamento da GPU, tente executar o aplicativo de amostra doMNIST tutorial que você clonou anteriormente.

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

Tente executar o mesmo arquivo Python sem a GPU habilitada. Você notou a diferença na velocidade de execução?

Testando para GPU

Você pode verificar facilmente se a GPU está habilitada executando o seguinte código -

import tensorflow as tf
tf.test.gpu_device_name()

Se a GPU estiver habilitada, ela dará a seguinte saída -

'/device:GPU:0'

Dispositivos de listagem

Se você está curioso para conhecer os dispositivos utilizados durante a execução do seu notebook na nuvem, experimente o seguinte código -

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

Você verá a saída da seguinte forma -

[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"]

Verificando RAM

Para ver os recursos de memória disponíveis para o seu processo, digite o seguinte comando -

!cat /proc/meminfo

Você verá a seguinte saída -

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

Agora você está pronto para o desenvolvimento de modelos de aprendizado de máquina em Python usando o Google Colab.

O Google Colab é uma plataforma poderosa para aprender e desenvolver rapidamente modelos de aprendizado de máquina em Python. É baseado no notebook Jupyter e oferece suporte ao desenvolvimento colaborativo. Os membros da equipe podem compartilhar e editar simultaneamente os blocos de anotações, mesmo remotamente. Os cadernos também podem ser publicados no GitHub e compartilhados com o público em geral. Colab oferece suporte a muitas bibliotecas populares de ML, como PyTorch, TensorFlow, Keras e OpenCV. A restrição a partir de hoje é que ele ainda não oferece suporte a R ou Scala. Também há uma limitação de sessões e tamanho. Considerando os benefícios, esses são pequenos sacrifícios que precisamos fazer.