Google Colab - Guida rapida

Google è piuttosto aggressivo nella ricerca sull'IA. Per molti anni, Google ha sviluppato un framework AI chiamatoTensorFlow e uno strumento di sviluppo chiamato Colaboratory. Oggi TensorFlow è open-source e dal 2017 Google ha reso Colaboratory gratuito per uso pubblico. Colaboratory è ora noto come Google Colab o semplicementeColab.

Un'altra caratteristica interessante che Google offre agli sviluppatori è l'uso della GPU. Colab supporta GPU ed è totalmente gratuito. I motivi per renderlo gratuito per il pubblico potrebbero essere rendere il suo software uno standard negli accademici per l'insegnamento dell'apprendimento automatico e della scienza dei dati. Potrebbe anche avere una prospettiva a lungo termine per la creazione di una base di clienti per le API di Google Cloud che vengono vendute in base all'uso.

Indipendentemente dalle ragioni, l'introduzione di Colab ha facilitato l'apprendimento e lo sviluppo di applicazioni di machine learning.

Quindi, iniziamo con Colab.

Se hai usato Jupyternotebook in precedenza, impareresti rapidamente a utilizzare Google Colab. Per essere precisi, Colab è un ambiente notebook Jupyter gratuito che funziona interamente nel cloud. Ancora più importante, non richiede una configurazione e i taccuini che crei possono essere modificati simultaneamente dai membri del tuo team, proprio come modifichi i documenti in Google Docs. Colab supporta molte popolari librerie di machine learning che possono essere facilmente caricate nel tuo notebook.

Cosa ti offre Colab?

In qualità di programmatore, puoi eseguire le seguenti operazioni utilizzando Google Colab.

  • Scrivi ed esegui codice in Python

  • Documenta il tuo codice che supporta equazioni matematiche

  • Crea / Carica / Condividi taccuini

  • Importa / Salva taccuini da / su Google Drive

  • Importa / pubblica taccuini da GitHub

  • Importa set di dati esterni, ad esempio da Kaggle

  • Integra PyTorch, TensorFlow, Keras, OpenCV

  • Servizio Cloud gratuito con GPU gratuita

In questo capitolo creerai ed eseguirai il tuo primo banale taccuino. Segui i passaggi che sono stati forniti ovunque sia necessario.

Note - Poiché Colab utilizza implicitamente Google Drive per archiviare i tuoi notebook, assicurati di aver effettuato l'accesso al tuo account Google Drive prima di procedere oltre.

Step 1 - Apri il seguente URL nel tuo browser - https://colab.research.google.com Il tuo browser visualizzerà la seguente schermata (supponendo che tu abbia effettuato l'accesso a Google Drive):

Step 2 - Fare clic sul file NEW PYTHON 3 NOTEBOOKlink nella parte inferiore dello schermo. Si aprirà un nuovo notebook come mostrato nella schermata qui sotto.

Come avrai notato, l'interfaccia del notebook è abbastanza simile a quella fornita in Jupyter. C'è una finestra del codice in cui devi inserire il tuo codice Python.

Impostazione del nome del notebook

Per impostazione predefinita, il notebook utilizza la convenzione di denominazione UntitledXX.ipynb. Per rinominare il taccuino, fare clic su questo nome e digitare il nome desiderato nella casella di modifica come mostrato qui -

Chiameremo questo taccuino come MyFirstColabNotebook. Quindi digita questo nome nella casella di modifica e premi INVIO. Il taccuino acquisirà il nome che hai dato ora.

Immissione del codice

Ora inserirai un banale codice Python nella finestra del codice e lo eseguirai.

Immettere le seguenti due istruzioni Python nella finestra del codice:

import time
print(time.ctime())

Codice in esecuzione

Per eseguire il codice, fare clic sulla freccia sul lato sinistro della finestra del codice.

Dopo un po ', vedrai l'output sotto la finestra del codice, come mostrato qui -

Mon Jun 17 05:58:40 2019

È possibile cancellare l'output in qualsiasi momento facendo clic sull'icona sul lato sinistro del display dell'output.

Aggiunta di celle di codice

Per aggiungere altro codice al tuo blocco note, seleziona quanto segue menu opzioni -

Insert / Code Cell

In alternativa, passa il mouse in basso al centro della cella del codice. Quando ilCODE e TEXTvengono visualizzati i pulsanti, fare clic sul CODICE per aggiungere una nuova cella. Questo è mostrato nello screenshot qui sotto -

Una nuova cella di codice verrà aggiunta sotto la cella corrente. Aggiungi le seguenti due istruzioni nella finestra del codice appena creata:

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

Ora, se esegui questa cella, vedrai il seguente output:

Mon Jun 17 04:50:27 2019

Certamente, la differenza di tempo tra le due stringhe di tempo non è di 5 secondi. Questo è ovvio perché hai impiegato del tempo per inserire il nuovo codice. Colab ti consente di eseguire tutto il codice all'interno del tuo notebook senza interruzioni.

Esegui tutto

Per eseguire l'intero codice nel notebook senza interruzioni, eseguire le seguenti opzioni di menu:

Runtime / Reset and run all…

Ti darà l'output come mostrato di seguito -

Notare che la differenza di tempo tra le due uscite ora è esattamente di 5 secondi.

L'azione di cui sopra può essere avviata anche eseguendo le seguenti due opzioni di menu:

Runtime / Restart runtime…

o

Runtime / Restart all runtimes…

Seguito da

Runtime / Run all

Studia le diverse opzioni di menu sotto Runtime menu per familiarizzare con le varie opzioni disponibili per l'esecuzione del notebook.

Modifica dell'ordine delle celle

Quando il tuo taccuino contiene un gran numero di celle di codice, potresti imbatterti in situazioni in cui vorresti cambiare l'ordine di esecuzione di queste celle. Puoi farlo selezionando la cella che desideri spostare e facendo clic suUP CELL o DOWN CELL pulsanti mostrati nella seguente schermata:

È possibile fare clic sui pulsanti più volte per spostare la cella per più di una singola posizione.

Eliminazione della cella

Durante lo sviluppo del progetto, potresti aver introdotto alcune celle ora indesiderate nel tuo notebook. Puoi rimuovere facilmente tali celle dal tuo progetto con un solo clic. Fare clic sull'icona tratteggiata verticale nell'angolo in alto a destra della cella del codice.

Clicca sul Delete cell l'opzione e la cella corrente verrà eliminata.

Ora che hai imparato a eseguire un banale notebook, esploriamo le altre funzionalità di Colab.

Poiché la cella del codice supporta la sintassi completa di Python, puoi usare Python commentsnella finestra del codice per descrivere il codice. Tuttavia, molte volte è necessario qualcosa di più di semplici commenti basati su testo per illustrare gli algoritmi di ML. ML utilizza pesantemente la matematica e per spiegare questi termini ed equazioni ai lettori è necessario un editor che supporti LaTex, un linguaggio per le rappresentazioni matematiche. Colab fornisceText Cells per questo scopo.

Una cella di testo contenente poche equazioni matematiche tipicamente utilizzate in ML è mostrata nello screenshot qui sotto:

Andando avanti in questo capitolo, vedremo il codice per generare l'output di cui sopra.

Le celle di testo vengono formattate utilizzando markdown- un semplice linguaggio di markup. Vediamo ora come aggiungere celle di testo al tuo quaderno e aggiungere ad esso del testo contenente equazioni matematiche.

Esempi di markdown

Esaminiamo alcuni esempi di sintassi del linguaggio di markup per dimostrare le sue capacità.

Digita il testo seguente nella cella Testo.

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

L'output dei comandi precedenti viene visualizzato sul lato destro della cella come mostrato qui.

Equazioni matematiche

Aggiungere un Text Cell sul tuo taccuino e inserisci la seguente sintassi markdown nella finestra di testo -

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

Vedrai il rendering immediato del codice markdown nel pannello laterale destro della cella di testo. Questo è mostrato nello screenshot qui sotto -

Colpire Enter e il codice markdown scompare dalla cella di testo e viene mostrato solo l'output renderizzato.

Proviamo un'altra equazione più complicata come mostrato qui -

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

L'output renderizzato viene mostrato qui per una rapida consultazione.

Codice per equazioni di esempio

Ecco il codice per le equazioni di esempio mostrate in uno screenshot precedente:

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}$

La descrizione della sintassi completa del markup va oltre lo scopo di questo tutorial. Nel prossimo capitolo vedremo come salvare il tuo lavoro.

Colab ti consente di salvare il tuo lavoro su Google Drive o anche direttamente sul tuo repository GitHub.

Salvataggio su Google Drive

Colab ti consente di salvare il tuo lavoro sul tuo Google Drive. Per salvare il blocco note, selezionare le seguenti opzioni di menu:

File / Save a copy in Drive…

Vedrai la seguente schermata:

L'azione creerà una copia del tuo blocco note e la salverà sull'unità. Successivamente è possibile rinominare la copia con il nome scelto.

Salvataggio su GitHub

Puoi anche salvare il tuo lavoro nel tuo repository GitHub selezionando le seguenti opzioni di menu:

File / Save a copy in GitHub...

La selezione del menu è mostrata nella seguente schermata per una rapida consultazione -

Dovrai attendere fino a quando non vedrai la schermata di accesso a GitHub.

Ora inserisci le tue credenziali. Se non hai un repository, creane uno nuovo e salva il tuo progetto come mostrato nello screenshot qui sotto -

Nel prossimo capitolo impareremo come condividere il tuo lavoro con gli altri.

Per condividere il taccuino che hai creato con altri co-sviluppatori, puoi condividere la copia che hai fatto nel tuo Google Drive.

Per pubblicare il blocco appunti per un pubblico generico, puoi condividerlo dal tuo repository GitHub.

C'è un altro modo per condividere il tuo lavoro e cioè fare clic su SHARElink nell'angolo in alto a destra del tuo taccuino Colab. Questo aprirà la casella di condivisione come mostrato qui -

Puoi inserire gli ID email delle persone con le quali desideri condividere il documento corrente. È possibile impostare il tipo di accesso selezionando tra le tre opzioni mostrate nella schermata sopra.

Clicca sul Get shareable linkopzione per ottenere l'URL del tuo blocco note. Troverai le opzioni per chi condividere come segue:

  • Gruppo di persone specificato

  • Colleghi della tua organizzazione

  • Chiunque abbia il link

  • Tutto pubblico sul web

Adesso. sai come creare / eseguire / salvare / condividere un taccuino. Nella cella Codice, abbiamo utilizzato Python fino ad ora. La cella del codice può essere utilizzata anche per richiamare i comandi di sistema. Questo è spiegato di seguito.

Jupyter include scorciatoie per molte operazioni di sistema comuni. La cella del codice Colab supporta questa funzione.

Comandi semplici

Immettere il codice seguente nella cella Codice che utilizza il comando di sistema echo.

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

Ora, se esegui la cella, vedrai il seguente output:

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

Recupero dati remoti

Esaminiamo un altro esempio che carica il set di dati da un server remoto. Digita il seguente comando nella cella del codice:

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

Se esegui il codice, vedrai il seguente output:

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

Come dice il messaggio, il file adult.data.1il file è ora aggiunto all'unità. Puoi verificarlo esaminando il contenuto della cartella dell'unità. In alternativa, digita il codice seguente in una nuova cella Codice:

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

Esegui il codice ora e vedrai il seguente output:

Allo stesso modo, la maggior parte dei comandi di sistema può essere richiamata nella cella del codice anteponendo al comando un punto esclamativo (!). Esaminiamo un altro esempio prima di fornire l'elenco completo dei comandi che puoi invocare.

Clonazione del repository Git

Puoi clonare l'intero repository GitHub in Colab usando il gitcomando. Ad esempio, per clonare il tutorial di keras, digita il seguente comando nella cella Codice:

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

Dopo un'esecuzione riuscita del comando, vedrai il seguente output:

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 volta che il repository è stato clonato, individua un progetto Jupyter (ad esempio MINST in keras.ipyab) al suo interno, fai clic con il pulsante destro del mouse sul nome del file e seleziona Open With / Colaboratory opzione di menu per aprire il progetto in Colab.

Alias ​​di sistema

Per ottenere un elenco di scorciatoie per operazioni comuni, eseguire il seguente comando:

!ls /bin

Vedrai l'elenco nella finestra di output come mostrato di seguito -

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*

Esegui uno qualsiasi di questi comandi come abbiamo fatto per echo e wget. Nel prossimo capitolo vedremo come eseguire il codice Python creato in precedenza.

Supponi di avere già sviluppato del codice Python archiviato nel tuo Google Drive. Ora, ti piacerebbe caricare questo codice in Colab per ulteriori modifiche. In questo capitolo vedremo come caricare ed eseguire il codice memorizzato nel tuo Google Drive.

Unità di montaggio

Tools / Command palette

Vedrai l'elenco dei comandi come mostrato in questo screenshot -

Digita alcune lettere come "m" nella casella di ricerca per individuare il comando mount. SelezionareMount Drivecomando dall'elenco. Il codice seguente verrebbe inserito nella cella del codice.

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

Se esegui questo codice, ti verrà chiesto di inserire il codice di autenticazione. La schermata corrispondente appare come mostrato di seguito:

Apri l'URL sopra nel tuo browser. Ti verrà chiesto di accedere al tuo account Google. Ora vedrai la seguente schermata:

Se concedi le autorizzazioni, riceverai il codice come segue:

Taglia e incolla questo codice nella cella Codice e premi INVIO. Dopo un po ', l'unità verrà montata come mostrato nello screenshot qui sotto -

Ora sei pronto per utilizzare il contenuto del tuo disco in Colab.

Elenco dei contenuti dell'unità

È possibile elencare il contenuto dell'unità utilizzando il comando ls come segue:

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

Questo comando elencherà il contenuto della cartella Colab Notebooks. L'output di esempio dei contenuti del mio disco è mostrato qui -

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

Esecuzione di codice Python

Ora, diciamo che desideri eseguire un file Python chiamato hello.py archiviato nel tuo Google Drive. Digita il seguente comando nella cella Codice:

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

I contenuti di hello.py sono forniti qui come riferimento -

print("Welcome to TutorialsPoint!")

Ora vedrai il seguente output:

Welcome to TutorialsPoint!

Oltre all'output di testo, Colab supporta anche gli output grafici. Lo vedremo nel prossimo capitolo.

Colab supporta anche output ricchi come i grafici. Digita il codice seguente nella cella Codice.

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()

Ora, se esegui il codice, vedrai il seguente output:

Notare che l'output grafico è mostrato nella sezione output della cella Codice. Allo stesso modo, sarai in grado di creare e visualizzare diversi tipi di grafici in tutto il codice del programma.

Ora, poiché hai acquisito familiarità con le basi di Colab, passiamo alle funzionalità di Colab che semplificano lo sviluppo del codice Python.

Gli sviluppatori attuali fanno molto affidamento sulla guida sensibile al contesto per la sintassi del linguaggio e della libreria. Ecco perché gli IDE sono ampiamente utilizzati. L'editor del notebook Colab fornisce questa funzione.

In questo capitolo, vediamo come chiedere aiuto sensibile al contesto durante la scrittura di codice Python in Colab. Segui i passaggi che sono stati forniti ovunque sia necessario.

Elenco delle funzioni

Step 1 - Apri un nuovo blocco note e digita il seguente codice nella cella Codice -

import torch

Step 2- Esegui il codice facendo clic sull'icona Esegui nel pannello di sinistra della cella Codice. Aggiungi un'altra cella Codice e digita il seguente codice:

Tensor = torch.

A questo punto, supponiamo di aver dimenticato quali sono le varie funzioni disponibili in torchmodulo. Puoi chiedere la guida sensibile al contesto sui nomi delle funzioni premendo ilTABchiave. Da notare la presenza del fileDOT dopo il torchparola chiave. Senza questo DOT, non vedrai la guida contestuale. Il tuo schermo apparirà come mostrato nello screenshot qui -

Ora seleziona la funzione desiderata dall'elenco e procedi con la codifica.

Documentazione di funzione

Colab ti fornisce la documentazione su qualsiasi file function o class come aiuto sensibile al contesto.

Digita il codice seguente nella finestra del codice:

Tensor = torch.cos(

Ora, colpisci TAB e vedrai la documentazione su cosnella finestra popup come mostrato nello screenshot qui. Nota che devi digitareopen parenthesis prima di premere TAB.

Nel prossimo capitolo vedremo Magics in Colab che ci consente di fare cose più potenti di quanto abbiamo fatto con gli alias di sistema.

Magics è un insieme di comandi di sistema che forniscono un mini linguaggio di comando esteso.

Le magie sono di due tipi:

  • Linea magica

  • Magie cellulari

La linea magica come il nome indica che è costituita da una singola riga di comando, mentre la magia della cella copre l'intero corpo della cella del codice.

In caso di line magics, il comando è preceduto da un singolo carattere% e nel caso di cell magics, è preceduto da due caratteri% (%%).

Esaminiamo alcuni esempi di entrambi per illustrarli.

Line Magics

Digita il codice seguente nella cella del codice:

%ldir

Vedrai il contenuto della tua directory locale, qualcosa del genere -

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

Prova il seguente comando:

%history

Questo presenta la cronologia completa dei comandi che hai eseguito in precedenza.

Cell Magics

Digita il codice seguente nella cella del codice:

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

Ora, se esegui il codice e vedrai il messaggio di benvenuto a scorrimento sullo schermo come mostrato qui -

Il codice seguente aggiungerà SVG al tuo 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 esegui il codice, vedrai il seguente output:

Elenco di magie

Per ottenere un elenco completo delle magie supportate, esegui il seguente comando:

%lsmagic

Vedrai il seguente output:

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.

Successivamente, imparerai un'altra potente funzionalità in Colab per impostare le variabili del programma in fase di esecuzione.

Colab fornisce un'utilità molto utile chiamata Forms che consente di accettare input dall'utente in fase di esecuzione. Passiamo ora a vedere come aggiungere moduli al tuo taccuino.

Aggiunta di un modulo

In una lezione precedente, hai utilizzato il codice seguente per creare un ritardo temporale:

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

Si supponga di volere un ritardo impostato dall'utente invece di un ritardo fisso di 5 secondi. Per questo, puoi aggiungere un modulo alla cella Codice per accettare il tempo di sospensione.

Apri un nuovo taccuino. Clicca sulOptionsmenu (punteggiato verticalmente). Viene visualizzato un menu popup come si vede nello screenshot qui sotto -

Ora seleziona Add a formopzione. Aggiungerà il modulo alla cella del codice con un titolo predefinito come mostrato nello screenshot qui -

Per modificare il titolo del modulo, fare clic su Settingspulsante (icona della matita a destra). Apparirà una schermata delle impostazioni come mostrato qui:

Cambia il titolo del modulo in “Form”e salva il modulo. Puoi usare un altro nome a tua scelta. Si noti che aggiunge l'estensione@title nella cella del codice.

Puoi esplorare altre opzioni nella schermata sopra in un secondo momento. Nella sezione successiva, impareremo come aggiungere campi di input al modulo.

Aggiunta di campi modulo

Per aggiungere un campo modulo, fare clic su Options menu nella cella Codice, fare clic su Formper rivelare i sottomenu. Lo schermo apparirà come mostrato di seguito:

Selezionare Add a form fieldopzione di menu. Viene visualizzata una finestra di dialogo come mostrato qui:

Lasciare il Form field type per input. Cambiare il Variable name per sleeptime e imposta il Variable type per integer. Salvare le modifiche facendo clic suSave pulsante.

Lo schermo sarà ora simile al seguente con l'estensione sleeptime variabile aggiunta nel codice.

Successivamente, vediamo come testare il modulo aggiungendo del codice che utilizza l'estensione sleeptime variabile.

Modulo di prova

Aggiungi una nuova cella Codice sotto la cella del modulo. Usa il codice fornito di seguito -

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

Hai usato questo codice nella lezione precedente. Stampa l'ora corrente, attende un certo periodo di tempo e stampa un nuovo timestamp. La quantità di tempo che il programma attende è impostata nella variabile chiamatasleeptime.

Ora, torna al file Form Cella e digita un valore di 2 per il file sleeptime. Seleziona il seguente menu -

Runtime / Run all

Questo esegue l'intero notebook. È possibile visualizzare una schermata di output come mostrato di seguito.

Si noti che ha preso il valore di input di 2 per il file

ora di dormire

. Prova a cambiarlo con un valore diverso e Run all per vederne l'effetto.

Inserimento di testo

Per accettare un input di testo nel modulo, inserisci il seguente codice in una nuova cella di codice.

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

Ora, se esegui la cella Codice, qualunque sia il nome che hai impostato nel modulo verrà stampato sullo schermo. Per impostazione predefinita, sullo schermo verrà visualizzato il seguente output.

Tutorialspoint

Si noti che è possibile utilizzare le opzioni di menu come mostrato per l'input intero per creare un file Text Campo di inserimento.

Menu `A tendina

Per aggiungere un elenco a discesa al modulo, utilizza il codice seguente:

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

Questo crea un elenco a discesa con tre valori: rosso, verde e blu. La selezione predefinita è verde.

L'elenco a discesa è mostrato nello screenshot qui sotto:

Inserimento della data

Colab Form ti consente di accettare date nel tuo codice con convalide. Usa il codice seguente per inserire la data nel codice.

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

La schermata Modulo ha il seguente aspetto.

Prova a inserire un valore di data errato e osserva le convalide.

Finora hai imparato come usare Colab per creare ed eseguire notebook Jupyter con il tuo codice Python. Nel prossimo capitolo vedremo come installare le popolari librerie ML nel tuo notebook in modo da poterle usare nel tuo codice Python.

Colab supporta la maggior parte delle librerie di machine learning disponibili sul mercato. In questo capitolo, diamo una rapida panoramica su come installare queste librerie nel tuo notebook Colab.

Per installare una libreria, puoi utilizzare una di queste opzioni:

!pip install

o

!apt-get install

Keras

Keras, scritto in Python, viene eseguito su TensorFlow, CNTK o Theano. Consente la prototipazione facile e veloce di applicazioni di rete neurale. Supporta sia le reti convoluzionali (CNN) sia le reti ricorrenti e anche le loro combinazioni. Supporta perfettamente la GPU.

Per installare Keras, usa il seguente comando:

!pip install -q keras

PyTorch

PyTorch è ideale per lo sviluppo di applicazioni di deep learning. È una libreria tensoriale ottimizzata ed è abilitata per GPU. Per installare PyTorch, usa il seguente comando:

!pip3 install torch torchvision

MxNet

Apache MxNet è un'altra libreria flessibile ed efficiente per il deep learning. Per installare MxNet eseguire i seguenti comandi:

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

OpenCV

OpenCV è una libreria di visione artificiale open source per lo sviluppo di applicazioni di machine learning. Ha più di 2500 algoritmi ottimizzati che supportano diverse applicazioni come il riconoscimento di volti, l'identificazione di oggetti, il tracciamento di oggetti in movimento, l'unione di immagini e così via. Giganti come Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota utilizzano questa libreria. Ciò è particolarmente adatto per lo sviluppo di applicazioni di visione in tempo reale.

Per installare OpenCV utilizzare il seguente comando:

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

XGBoost

XGBoost è una libreria di potenziamento del gradiente distribuito che funziona sui principali ambienti distribuiti come Hadoop. È altamente efficiente, flessibile e portatile. Implementa algoritmi ML nel framework Gradient Boosting.

Per installare XGBoost, usa il seguente comando:

!pip install -q xgboost==0.4a30

GraphViz

Graphviz è un software open source per la visualizzazione di grafici. Viene utilizzato per la visualizzazione in rete, bioinformatica, progettazione di database e, del resto, in molti domini in cui si desidera un'interfaccia visiva dei dati.

Per installare GraphViz, utilizzare il seguente comando:

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

A questo punto, hai imparato a creare notebook Jupyter contenenti librerie di machine learning popolari. Ora sei pronto per sviluppare i tuoi modelli di machine learning. Ciò richiede un'elevata potenza di elaborazione. Colab fornisce GPU gratuita per i tuoi notebook.

Nel prossimo capitolo impareremo come abilitare la GPU per il tuo notebook.

Google fornisce l'uso della GPU gratuita per i tuoi notebook Colab.

Abilitazione della GPU

Per abilitare la GPU nel tuo notebook, seleziona le seguenti opzioni di menu:

Runtime / Change runtime type

Vedrai la seguente schermata come output:

Selezionare GPUe il tuo notebook utilizzerà la GPU gratuita fornita nel cloud durante l'elaborazione. Per avere un'idea dell'elaborazione della GPU, prova a eseguire l'applicazione di esempio daMNIST tutorial che hai clonato in precedenza.

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

Prova a eseguire lo stesso file Python senza la GPU abilitata. Hai notato la differenza nella velocità di esecuzione?

Test per GPU

Puoi facilmente verificare se la GPU è abilitata eseguendo il seguente codice:

import tensorflow as tf
tf.test.gpu_device_name()

Se la GPU è abilitata, darà il seguente output:

'/device:GPU:0'

Elenco dei dispositivi

Se sei curioso di conoscere i dispositivi utilizzati durante l'esecuzione del tuo notebook in cloud, prova il seguente codice:

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

Vedrai l'output come segue:

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

Controllo della RAM

Per vedere le risorse di memoria disponibili per il tuo processo, digita il seguente comando:

!cat /proc/meminfo

Vedrai il seguente output:

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

Ora sei pronto per lo sviluppo di modelli di machine learning in Python utilizzando Google Colab.

Google Colab è una potente piattaforma per l'apprendimento e lo sviluppo rapido di modelli di machine learning in Python. Si basa sul notebook Jupyter e supporta lo sviluppo collaborativo. I membri del team possono condividere e modificare contemporaneamente i taccuini, anche da remoto. I taccuini possono anche essere pubblicati su GitHub e condivisi con il grande pubblico. Colab supporta molte librerie ML popolari come PyTorch, TensorFlow, Keras e OpenCV. La restrizione ad oggi è che non supporta ancora R o Scala. C'è anche una limitazione alle sessioni e alle dimensioni. Considerando i vantaggi, questi sono piccoli sacrifici che bisogna fare.