Deep Learning con TensorFlow 2.0: tutto ciò che devi sapere
Pubblicato: 2021-01-05TensorFlow è il framework di Machine Learning di Google. Viene utilizzato principalmente per attività relative al Deep Learning e si integra perfettamente anche con altre API di Google. TensorFlow è chiaramente una delle librerie più utilizzate per il Deep Learning nel settore in questo momento e vale assolutamente la pena imparare!
Alla fine di questo tutorial, avrai conoscenza di quanto segue.
- Cos'è TensorFlow?
- Cosa c'è di nuovo in TF 2.0?
- TensorFlow vs Keras
- Installazione di TensorFlow
- Classificatore di immagini in TensorFlow
Sommario
Cos'è TensorFlow?
TensorFlow è nato come libreria di Deep Learning open source di Google e ora è un framework completo per processi di Machine Learning end-to-end. Ti starai chiedendo perché Google ha scelto questo nome e cosa significa "Tensore".
Che cos'è un tensore?
I tensori sono effettivamente array multidimensionali che consentono di eseguire operazioni complesse su array multidimensionali. Tuttavia, non sono solo un array N-dimensionale.
Un Tensor include anche le trasformazioni come prodotto scalare, addizione, moltiplicazione di matrici, ecc.
Ma perché sono importanti?
I tensori non sono nuovi. Sono in uso da molto tempo, ma le loro caratteristiche sono ampiamente sfruttate nell'area del Deep Learning, dove i dati sono solitamente enormi e di dimensioni multiple.

I tensori, proprio come gli array Numpy, hanno anche una forma e un tipo di dati. Tutti i tensori sono immutabili come i numeri e le stringhe Python: non puoi mai aggiornare il contenuto di un tensore, ma crearne solo uno nuovo.
Ma ciò che li rende diversi dai soliti array Numpy è la loro capacità di utilizzare la memoria della GPU e la potenza di calcolo, che è della massima importanza quando i dati sono di grandi dimensioni e le dimensioni sono di milioni o più.
I tensori sono molto utilizzati nei framework di Deep Learning come Pytorch di Facebook e TensorFlow di Google, che prendono anche il nome da loro!
Google ha anche sviluppato un altro acceleratore di intelligenza artificiale, chiamato Tensor Processing Unit (TPU), in particolare per TensorFlow, che porta l'ottimizzazione a un livello superiore!
Leggi: Regolarizzazione in Deep Learning
Cosa c'è di nuovo in TF 2.0?
Google aveva rilasciato la prima versione di TensorFlow 1 nel 2015 dal Google Brain Team.
L'uso di TensorFlow 1.x per creare reti neurali non è stato un compito facile poiché richiedeva molto codice da scrivere.
Valutazione pigra contro valutazione desiderosa
Con TensorFlow 1.x, era necessario creare sessioni ed eseguire tali sessioni per generare l'output di qualsiasi "grafico". Capiamolo con il codice sottostante
importa flusso tensoriale come tf a = tf.costante(1) |
L'esecuzione del codice sopra non ti darà l'output desiderato, cioè 3. Questo perché TensorFlow 1.x ha funzionato in sessioni.
Una sessione è un tipo di ambiente che contiene tutte le variabili e le trasformazioni che deve fare.
È stato creato un grafico delle trasformazioni che non è stato valutato fino a quando non è stato chiamato in modo specifico eseguendo tf.session.run().
Pertanto, il codice sopra restituirà ciò che ti aspetti se lo fai:
tf.Session.run(c) |
Questo si chiama valutazione pigra. Mentre attende pigramente fino a quando non gli viene specificamente detto di correre.
Questo processo lungo e complicato doveva essere risolto e quindi è nata la necessità di TensorFlow 2.x.
TF 2.x viene fornito con la valutazione Eager per impostazione predefinita che ci rende davvero facile codificare ed eseguire i processi.
Non ci sono sessioni ora e l'addestramento della rete neurale che ha richiesto 100 righe in TF 1.x ne richiede meno di 20 con TF 2.x.
L'esecuzione desiderosa di TensorFlow è un ambiente di programmazione imperativo che valuta le operazioni immediatamente, senza creare grafici: le operazioni restituiscono valori concreti invece di costruire un grafico computazionale da eseguire in seguito.
Ciò semplifica l'avvio di TensorFlow e dei modelli di debug, oltre a ridurre il boilerplate.
TensorFlow contro Keras
La domanda in realtà non è TensorFlow vs Keras. È TensorFlow con Keras. Keras ha fornito un'API di alto livello su TensorFlow 1.x che ha reso molto facile lavorarci.

Ora con TF 2.0, TensorFlow ha ufficialmente reso Keras una parte della sua API per la progettazione di modelli e l'addestramento con tf.keras.
Si suggerisce ora di eseguire tutto il codice precedentemente eseguito in Keras con tf.keras in TF 2.0 poiché consente di utilizzare tutti i componenti e l'ecosistema TensorFlow come:
- TensorFlow Serving utilizzato per servire/distribuire i modelli TensorFlow senza interruzioni.
- TensorFlow Lite che è la versione mobile di TensorFlow in grado di funzionare su Android e IOS.
- TensorFlow.js è una raccolta di API che ci consente di creare e addestrare modelli utilizzando la libreria di algebra lineare JavaScript di basso livello o l'API di livelli di alto livello. Pertanto, i modelli di deep learning possono essere addestrati ed eseguiti in un browser.
- TensorBoard è una suite di strumenti di visualizzazione per comprendere, eseguire il debug e ottimizzare i programmi TensorFlow.
Installazione di TensorFlow
Se non conosci il Machine Learning, il modo più semplice per iniziare è aprire un Colab Notebook. Basta andare su https://colab.research.google.com/ e fare clic su "Nuovo notebook Python 3".
Assicurati che il kernel indichi "connesso" in alto a destra. Buone notizie, TensorFlow è preinstallato in Google Colab.
Ecco! Sei a posto.
Per verificare se stai utilizzando la versione corretta, esegui lo snippet di seguito.
importa flusso tensoriale come tf tf.__versione__ |
Dovrebbe dire qualsiasi versione superiore alla 2.0.0 e sei a posto.
Classificatore di immagini in TensorFlow
Esaminiamo ora il "Hello World" dei problemi di Deep Learning: il set di dati MNIST.
Costruiremo una breve rete neurale per prevedere sul set di dati MNIST. Seguiremo i passaggi seguenti.
- Costruisci una rete neurale che classifichi le immagini.
- Addestra una rete neurale.
- Valutare l'accuratezza del modello
Importazione di TensorFlow.
importa flusso tensoriale come tf |
Caricamento dei dati MNIST.
mnist = tf.keras.datasets.mnist (x_treno, y_treno), (x_test, y_test) = mnist.load_data() |
Costruire un modello tf.keras.Sequential impilando i livelli.
Dovremmo scegliere un ottimizzatore e una funzione di perdita anche per il modello su cui allenarsi.
modello = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, attivazione='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10) ]) |
Definizione della funzione di perdita di entropia incrociata categoriale sparsa.
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True) |
Compilazione del modello.
model.compile(optimizer='adam', perdita=perdita_fn, metriche=['accuratezza']) |
Allenare il modello con 5 epoche.
model.fit(x_train, y_train, epochs=5) |
Valutazione del modello.
model.evaluate(x_test, y_test, dettagliato=2) |
313/313 – 0s – perdita: 0,0825 – precisione: 0,9753 [0.082541823387146, 0.9753000140190125] |
Il classificatore di immagini è ora addestrato con una precisione del 98% circa su questo set di dati.
Prima che tu vada
TensorFlow 2 si concentra sulla semplicità e la facilità d'uso, con aggiornamenti come l'esecuzione desiderosa, API intuitive di livello superiore e creazione di modelli flessibile su qualsiasi piattaforma.

TensorFlow è la libreria/strumento di riferimento per qualsiasi attività di deep learning al giorno d'oggi. L'altra libreria più utilizzata e popolare è PyTorch di Facebook.
L'ecosistema esteso di TensorFlow lo rende un luogo ideale per iniziare il tuo viaggio di deep learning. È facile da capire e, soprattutto, facile da implementare.
Il miglior punto di partenza è l'intuitiva API sequenziale. È possibile creare modelli collegando insieme i blocchi costitutivi. Ulteriori informazioni sulle tecniche di deep learning.
Conclusione
Quindi, ora che hai un'idea dettagliata di tutti i principali framework di Deep learning disponibili, puoi prendere una decisione informata e scegliere quello più adatto al tuo progetto.
Se sei interessato a saperne di più sull'apprendimento profondo e sull'intelligenza artificiale, dai un'occhiata al nostro programma PG Diploma in Machine Learning e AI, progettato per i professionisti che lavorano e fornisce oltre 30 casi di studio e incarichi, oltre 25 sessioni di tutoraggio del settore, oltre 5 mani pratiche -su progetti capstone, oltre 450 ore di formazione rigorosa e assistenza all'inserimento lavorativo con le migliori aziende.