Corso
Il corso di DataCamp Introduction to Deep Learning in Python ti dà tutto il necessario per fare deep learning sul tuo laptop o computer personale, ma prima o poi vorrai eseguire i modelli di deep learning su una GPU (Graphical Processing Unit).
Questo post ti aiuterà a fare il passo successivo!
La maggior parte degli utenti non ha una GPU sul proprio computer, quindi questo post ti mostrerà come eseguirne una sul cloud di Amazon Web Services (AWS).
Eseguire i tuoi modelli su una GPU come descritto qui costa circa $0,90 all'ora. Quindi, se il tuo laptop o computer personale ha una GPU, puoi configurarlo per usare quella GPU e risparmiare un po' di denaro.
Ci sono diversi passaggi per configurare l'ambiente di calcolo nel cloud la prima volta. Ma una volta impostato, sarà facile continuare a usarlo in futuro.
Creare un account Amazon Web Services
Vai su https://aws.amazon.com/ per registrarti a un account AWS. Segui il link Create an AWS Account.
Seleziona il pulsante I am a new user e inserisci il tuo indirizzo email. Verrai guidato nella compilazione di alcuni moduli con informazioni come nome, indirizzo email e una password.

Configurare il tuo server di cloud computing
Il processo di configurazione del server prevede diversi passaggi. Per fortuna, ti mostreremo come arrestare l'istanza, così non paghi quando non la usi e puoi riavviarla rapidamente una volta impostata.
Ora che hai un account, puoi usarlo in qualsiasi momento tornando su https://aws.amazon.com/ e facendo clic su Sign In To Console.

Amazon offre una gamma enorme di servizi di cloud computing e può risultare travolgente per chi è alle prime armi. Qui ti concentrerai sul servizio EC2 (acronimo di Elastic Cloud Compute). In alto a sinistra nella finestra del browser trovi un menu dei servizi.

Apri questo menu e seleziona EC2, che dovrebbe essere la prima opzione. Arriverai a una pagina con informazioni sullo stato di tutte le istanze EC2 in esecuzione. Seleziona il pulsante al centro della pagina per Launch Instance.

Ogni istanza viene fornita con software preinstallato (nelle "machine images"), e dobbiamo decidere cosa vogliamo preinstallato. Nel nostro caso, useremo un'immagine dell'AWS Marketplace ottimizzata per il deep learning.
Seleziona AWS Marketplace nella barra del menu a sinistra.
Quindi inserisci deep learning ubuntu nello spazio di ricerca:

Vedrai alcune opzioni tra cui la Deep Learning AMI Ubuntu Version ufficiale di Amazon. Seleziona quella.

Ora ti verrà presentato un menu di tipi di istanza. Ogni tipo ha un prezzo e capacità computazionali diverse.
Le istanze con GPU sono quelle che iniziano con g2 o p2. Ti consigliamo la p2.xlarge, che costa poco meno di un dollaro l'ora. Se vuoi qualcosa di meno costoso, la g2.2xlarge costa circa $0,65/ora, anche se non è altrettanto veloce o potente.
Dopo aver selezionato il tipo di istanza, seleziona Configure Instance Details in fondo alla pagina. Poi seleziona 6. Configure Security Group nel menu verso l'alto della pagina.
Qui imposteremo la tua istanza per renderla facile da raggiungere dal tuo computer.
Ogni riga descrive le regole su come si può accedere alla tua istanza.
Useremo i notebook Jupyter, che sono serviti sulla porta 8888. Se ora non ti è chiaro, vedrai presto come farlo funzionare.
Per ora, fai clic sul pulsante Add Rule. Nella nuova riga seleziona TCP per il protocollo, 8888 per la porta e 0.0.0.0/0 per l'ultima colonna, che è la sorgente.

Infine fai clic sul pulsante Review and Launch in basso allo schermo. Poi premi di nuovo Launch.
Ora arrivi all'ultimo aspetto della sicurezza… la selezione di una coppia di chiavi. La chiave è un file sul tuo computer che deve corrispondere a un file memorizzato sul server. È così che impedisci ad altri di usare il server che hai appena configurato. Quindi, non condividere le chiavi con altri e non mettere il file in luoghi pubblici.
Seleziona Create a new key pair e digita un nome per la tua chiave. Poi premi il pulsante Download Key Pair per ottenere una copia della chiave, che ti servirà per accedere al server.

Verrai presto portato a una schermata che assomiglia a questa:

La lunga stringa di caratteri in blu è il nome della tua istanza. Puoi selezionarla per vedere la dashboard EC2, che mostra questo server in esecuzione.
Complimenti! Ora hai un server per il deep learning in esecuzione nel cloud.
Connessione al tuo server
Ora ci connetteremo al server usando un protocollo chiamato ssh. Da lì, avvieremo un server Jupyter notebook, che potremo usare tramite browser.
Su un computer Mac o Linux puoi usare il comando ssh. In Windows, molti usano un'applicazione chiamata PuTTY per le connessioni ssh.
Potresti dover modificare i privilegi di accesso del file della tua chiave. In macOS e Linux questo si può fare con il comando
chmod 400 my_private_key.pemPoi, sempre da riga di comando, specifica che vuoi rendere disponibile questa chiave per l'autenticazione quando accedi al server con
ssh-add my_private_key.pemPer accedere al server, ci servirà l'indirizzo IP del server. Lo trovi nella dashboard EC2 nel tuo browser.

Accedi da riga di comando con il comando
ssh ubuntu@34.208.222.118Vorrai sostituire 34.208.222.118 con l'indirizzo IP del tuo server.
Una volta effettuato l'accesso al server, usa il comando ipython per avviare una shell IPython. Dentro IPython, prova a importare keras per assicurarti che tutto funzioni. Vedrai alcuni messaggi che indicano che CUDA è in uso… il che significa che keras sta accedendo alla GPU.

Se ti senti a tuo agio con Linux, IPython e un editor di testo Linux, puoi lavorare direttamente da qui. Alcune persone scelgono di usare due finestre: una per fare ssh al server ed eseguire IPython, e un'altra per fare ssh al server e usare l'editor di testo.
Configurare il tuo Jupyter Notebook
Tuttavia, la maggior parte delle persone trova più semplice impostare i notebook Jupyter e programmare via browser. Per questo, imposteremo una nuova password.
Il primo passo è ottenere l'hash della password che vuoi usare. Lo fai con quanto segue in IPython:

Copia l'hash generato dopo aver impostato la password. Ti servirà tra poco.
Digita exit per uscire da IPython.
Ora dobbiamo dire a Jupyter di usare la password scelta. Per farlo, esegui la seguente serie di comandi
jupyter notebook --generate-configmkdir certscd certssudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pemPoi usa un editor di testo per modificare ~/.jupyter/jupyter_notebook_config.py. Io preferisco vim, e userei il comando:
vim ~/.jupyter/jupyter_notebook_config.pyIn cima a quel file, incolla quanto segue:
c = get_config()c.IPKernelApp.pylab = 'inline' c.NotebookApp.certfile = u'/home/ubuntu/certs/mycert.pem' c.NotebookApp.ip = '*' c.NotebookApp.open_browser = False # Your password below will be whatever you copied earlier c.NotebookApp.password = u'sha1:941c93244463:0a28b4a9a472da0dc28e79351660964ab81605ae' c.NotebookApp.port = 8888Puoi copiare tutto esattamente e sostituire solo la password. Ricorda, non usare la tua password in chiaro. Incolla l'hash della password che hai creato prima.
Connessione a Jupyter dal browser
Vai nel browser che preferisci e inserisci l'indirizzo della tua istanza (disponibile nella dashboard EC2) seguito da :8888.

A questo punto potresti vedere un messaggio di sicurezza. Non dovresti preoccuparti. In Chrome puoi fare clic su un pulsante "advanced" nella finestra principale del browser per bypassarlo.

Ora ti verrà richiesto di inserire la password.

Digita la tua password. Non è l'hash della password, ma la password in chiaro che hai digitato in precedenza in IPython per ottenere l'hash.
Complimenti, hai effettuato l'accesso!
Usare il Notebook
Dal browser, seleziona dal menu la creazione di un nuovo notebook Python.

Uff… Non è stato facile. Ma da ora lo sarà
Ottenere queste funzionalità del notebook ha richiesto parecchia configurazione. Per fortuna, è per lo più uno sforzo una tantum. Ora puoi arrestare il server nella dashboard EC2 quando non lo usi e smetterai di pagarlo.

Arrestare un'istanza manterrà tutto il tuo lavoro di configurazione, ma l'istanza smetterà di funzionare finché non la riavvii. In un certo senso, è come un pulsante di pausa. Se selezionassi terminate perderesti tutte le informazioni su quell'istanza e dovresti rifare la configurazione la prossima volta.
Dal momento che hai selezionato stop, puoi tornare alla dashboard EC2 in un altro giorno e fare clic su start.

Una volta fatto clic su start, è piuttosto semplice rimettersi in moto. La tua istanza riceverà un nuovo indirizzo IP. Dovrai fare ssh verso quel nuovo indirizzo IP
ssh ubuntu@34.208.26.73Nella finestra in cui hai effettuato l'accesso al server via ssh, digita
jupyter notebookPuoi quindi tornare al browser e ricominciare subito a lavorare.
È stato un bel lavoro impostare tutto, ma si spera che ne trarrai grande utilità mentre continui a fare pratica e a portare avanti progetti di deep learning sempre più interessanti.
Se vuoi approfondire, dai un'occhiata a questi corsi DataCamp:

