Framework di apprendimento automatico open source di Google che alimenta reti neurali profonde per il riconoscimento delle immagini, l'elaborazione del linguaggio naturale e il calcolo numerico su larga scala
Nel novembre 2015, Google ha rilasciato il suo framework open source per machine learning, TensorFlow. La piattaforma supporta deep learning, reti neurali e calcoli numerici su CPU, GPU e cluster di GPU. Uno dei maggiori vantaggi di TensorFlow è la community open source di sviluppatori, data scientist e data engineer che contribuiscono al suo repository. La versione attuale di TensorFlow è disponibile su GitHub insieme alle note di rilascio. Attualmente TensorFlow è di gran lunga il motore di AI più utilizzato.

TensorFlow è una libreria open-source per il calcolo numerico, il machine learning su larga scala, il deep learning e altre attività di analisi statistica e predittiva. Questo tipo di tecnologia l'implementazione di modelli di machine learning più semplice e veloce per gli sviluppatori, assistendoli nel processo di acquisizione dei dati, nella formulazione di previsioni su larga scala e nel successivo affinamento dei risultati.
Cosa fa esattamente TensorFlow? Può addestrare ed eseguire reti neurali profonde per operazioni quali la classificazione delle cifre scritte a mano, il riconoscimento delle immagini, il word embedding (rappresentazione distribuita delle parole) e l'elaborazione del linguaggio naturale (NLP). Il codice contenuto nelle sue librerie software può essere aggiunto a qualsiasi applicazione per aiutarla ad apprendere queste attività.
Le applicazioni TensorFlow possono essere eseguite sia su CPU convenzionali (unità centrali di elaborazione), sia su GPU (unità di elaborazione grafica ad alte prestazioni). Essendo stato sviluppato da Google, TensorFlow funziona anche sulle unità di elaborazione tensoriale (TPU) dell'azienda, progettate appositamente per velocizzare le operazioni di TensorFlow.
Ti starai forse chiedendo in che linguaggio è scritto TensorFlow. Sebbene utilizzi Python come API di front-end per la creazione di applicazioni basate sul framework, in realtà ha wrapper in diversi linguaggi, tra cui C++ e Java. Questo significa che potrai addestrare e implementare il tuo modello di machine learning rapidamente, indipendentemente dal linguaggio o dalla piattaforma che utilizzi.
Clicca qui per ulteriori FAQ sullo sviluppo di modelli con TensorFlow.
Google ha rilasciato TensorFlow per la prima volta nel 2015 sotto la licenza Apache 2.0. Il suo predecessore era un framework closed-source di Google chiamato DistBelief, che ha fornito un banco di prova per l'implementazione del deep learning.
Le prime TPU di Google sono state presentate al pubblico nel 2016 e utilizzate internamente insieme a TensorFlow per alimentare alcune applicazioni e servizi online dell'azienda. Tra questi, l'algoritmo di ricerca RankBrain di Google e la tecnologia di mappatura di Street View.
All'inizio del 2017, Google TensorFlow ha raggiunto lo stato di Release 1.0.0. Un anno dopo, Google ha reso disponibile la seconda generazione di TPU agli utenti della piattaforma Google Cloud per consentire loro di addestrare ed eseguire i propri modelli di machine learning.
Google ha rilasciato la versione più recente, TensorFlow 2.0, nell'ottobre 2019. Sulla base del feedback degli utenti, Google ha modificato il framework per migliorarlo e renderlo più facile da utilizzare. Ad esempio, TensorFlow ora utilizza l'API Keras, relativamente semplice, per l'addestramento dei modelli.
Come abbiamo visto, TensorFlow è stato sviluppato da Google, che continua a possedere e a mantenere il framework. È stato creato dai ricercatori di Google Brain, un team che svolge ricerche volte a favorire il progresso di aree chiave dell'intelligenza artificiale e a promuovere una migliore comprensione teorica del deep learning.
Il team di Google Brain ha progettato TensorFlow in modo che potesse lavorare indipendentemente dall'infrastruttura informatica di Google, ma avere alle spalle un tale gigante commerciale ha apportato numerosi vantaggi al progetto. Oltre a finanziarne il rapido sviluppo, nel corso degli anni Google ha anche migliorato TensorFlow per garantirne la facilità di distribuzione e di utilizzo.
Google ha scelto di rendere TensorFlow un framework open-source con l'obiettivo di accelerare lo sviluppo dell'AI. Trattandosi di un progetto basato su community, tutti gli utenti possono contribuire a migliorare la tecnologia, e tutti ne condividono i benefici.
TensorFlow combina vari modelli e algoritmi di machine learning e deep learning (o networking neurale) e li rende accessibili tramite un'interfaccia comune.
Permette agli sviluppatori di creare grafici dataflow con nodi computazionali che rappresentano operazioni matematiche. Ciascuna connessione tra i nodi rappresenta vettori o matrici multidimensionali, creando quelli che vengono chiamati "tensori".
Anche se Python fornisce l'API front-end per TensorFlow, le operazioni matematiche vere e proprie non vengono eseguite in Python. Sono binari C++ ad alte prestazioni a svolgerle dietro le quinte. Python si limita a dirigere il traffico e a collegare tra loro le varie parti di codice tramite astrazioni di programmazione di alto livello.
Le applicazioni TensorFlow possono essere eseguite praticamente in qualsiasi ambiente, inclusi dispositivi iOS e Android, macchine locali o un cluster in cloud, oltre che su CPU o GPU (o sulle TPU personalizzate di Google se si utilizza Google Cloud).
TensorFlow include set di API sia di alto che di basso livello. Google consiglia le API di alto livello per semplificare lo sviluppo delle pipeline di dati e la programmazione delle applicazioni, mentre le API di basso livello (TensorFlow Core) sono utili per il debug delle applicazioni e la sperimentazione.
TensorFlow è stato progettato per semplificare il processo di sviluppo ed esecuzione di applicazioni analitiche avanzate per utenti quali data scientist, statistici e sviluppatori di modelli predittivi.
Il framework è ampiamente utilizzato da aziende di varie tipologie e dimensioni per automatizzare i processi e sviluppare nuovi sistemi, ed è particolarmente utile per applicazioni di elaborazione parallela su larghissima scala come le reti neurali. È stato inoltre impiegato in esperimenti e test sui veicoli a guida autonoma.
Come ci si potrebbe aspettare, Google, l'azienda madre di TensorFlow, utilizza il framework anche per attività operative interne, come il miglioramento delle capacità di recupero delle informazioni del suo motore di ricerca e l'alimentazione di applicazioni per la generazione automatica di risposte email, la classificazione delle immagini e il riconoscimento ottico dei caratteri.
Uno dei vantaggi di TensorFlow è la sua astrazione, che consente agli sviluppatori di concentrarsi sulla logica generale dell'applicazione, lasciando che sia il framework a occuparsi dei dettagli. Mette inoltre a disposizione degli sviluppatori di applicazioni TensorFlow strumenti di autoanalisi e di debug.
La suite di visualizzazione TensorBoard ha una dashboard interattiva su web che consente di verificare e profilare il modo in cui vengono eseguiti i grafici. Esiste poi una modalità di esecuzione "eager" che consente di valutare e modificare ogni operazione del grafico in maniera separata e trasparente, anziché creare l'intero grafico come un oggetto singolo opaco e valutarlo nel suo complesso.
Databricks Runtime for Machine Learning include TensorFlow e TensorBoard e consente utilizzare queste librerie senza installare alcun pacchetto.
Vediamo ora come utilizzare TensorFlow.
Istruzioni complete e tutorial sono disponibili su tensorflow.org, ma vediamo di seguito alcune nozioni di base.
Requisiti di sistema:
Requisiti hardware:
#1. Installa l'ambiente di sviluppo Python sul sistema
Verifica se l'ambiente Python è già configurato:
python3 - -version
pip3 - -version
Se questi pacchetti sono già installati, vai al passaggio successivo.
In caso contrario, installa Python, il gestore di pacchetti pip e venv.
Se non stai operando in un ambiente virtuale, usa python3 -m pip per i comandi seguenti. In questo modo aggiornerai e userai il pip di Python anziché quello di sistema.
#2. Crea un ambiente virtuale (consigliato)
Gli ambienti virtuali Python sono utilizzati per isolare l'installazione del pacchetto dal sistema.
#3. Installa il pacchetto pip TensorFlow
Scegli uno dei seguenti pacchetti TensorFlow da installare da PyPI:
Verifica l'installazione. Se viene restituito un tensore, l'installazione di TensorFlow è avvenuta correttamente.
Nota: alcuni meccanismi di installazione richiedono l'URL del pacchetto TensorFlow Python. Il valore specificato dipende dalla versione di Python in uso.
Il gestore di pacchetti pip offre un metodo semplice per aggiornare TensorFlow, indipendentemente dall'ambiente.
Prerequisiti:
Per aggiornare TensorFlow a una versione più recente:
#1. Apri il terminale (CTRL+ALT+T).
#2. Verifica la versione di TensorFlow attualmente installata:
pip3 show tensorflow
Il comando mostra informazioni riguardo al pacchetto, compresa la versione.
#3. Aggiorna TensorFlow a una versione più recente con:
pip3 install - -upgrade tensorflow===<version>
Assicurati che la versione che selezioni sia compatibile con la tua release di Python, altrimenti non verrà installata. Per l'ambiente notebook, utilizza il seguente comando e riavvia il kernel dopo che sarà stato completato:
!pip install - -upgrade tensorflow==<version>
In questo modo si rimuove automaticamente la vecchia versione insieme alle dipendenze e si installa l'aggiornamento più recente.
#4. Verificare la versione aggiornata eseguendo:
pip3 show tensorflow