Cos'è TensorFlow? Come funziona [con esempi]

Pubblicato: 2021-09-22

TensorFlow è una libreria open source utilizzata per creare modelli di machine learning. È una piattaforma incredibile per chiunque sia appassionato di lavorare con l'apprendimento automatico e l'intelligenza artificiale. Inoltre, con la crescita costante a cui sta assistendo il mercato dell'apprendimento automatico, strumenti come TensorFlow sono diventati sotto i riflettori mentre le aziende tecnologiche esplorano le diverse capacità della tecnologia AI. Senza dubbio, si prevede che il mercato globale dell'apprendimento automatico raggiungerà una valutazione di 117,19 miliardi di dollari entro il 2027 .

Ma all'inizio, è pertinente sapere cos'è TensorFlow e cosa lo rende una scelta popolare tra gli sviluppatori di tutto il mondo.

Sommario

Cos'è TensorFlow?

TensorFlow è una piattaforma open source end-to-end per l'apprendimento automatico con particolare attenzione alle reti neurali profonde. Il deep learning è un sottoinsieme del machine learning che prevede l'analisi di dati non strutturati su larga scala. Il deep learning differisce dal machine learning tradizionale in quanto quest'ultimo si occupa in genere di dati strutturati.

TensorFlow vanta una raccolta flessibile e completa di librerie, strumenti e risorse della community. Consente agli sviluppatori di creare e distribuire applicazioni all'avanguardia basate sull'apprendimento automatico. Una delle cose migliori di TensorFlow è che utilizza Python per fornire una comoda API front-end per la creazione di applicazioni mentre le esegue in C++ ottimizzato ad alte prestazioni.

Il team di Google Brain ha inizialmente sviluppato la libreria di apprendimento profondo Python TensorFlow per uso interno. Da allora, la piattaforma open source ha visto un'enorme crescita nell'utilizzo nei sistemi di ricerca e sviluppo e di produzione.

Alcune nozioni di base su TensorFlow

Ora che abbiamo un'idea fondamentale di cosa sia TensorFlow , è tempo di approfondire qualche dettaglio in più sulla piattaforma.

Di seguito è riportata una breve panoramica di alcuni concetti di base relativi a TensorFlow. Inizieremo con i tensori, i componenti principali di TensorFlow da cui la piattaforma prende il nome.

Tensori

Nella libreria di apprendimento profondo di TensorFlow Python , un tensore è un array che rappresenta i tipi di dati. A differenza di un vettore o array unidimensionale o di una matrice bidimensionale, un tensore può avere n dimensioni. In un tensore, i valori contengono tipi di dati identici con una forma nota. La forma rappresenta la dimensionalità. Pertanto, un vettore sarà un tensore unidimensionale, una matrice è un tensore bidimensionale e uno scalare sarebbe un tensore zero-dimensionale.

tensori

Fonte

Forma

Nella libreria TensorFlow Python , la forma si riferisce alla dimensionalità del tensore.

Nella libreria TensorFlow Python, la forma si riferisce alla dimensionalità del tensore.

Fonte

Nell'immagine sopra, la forma del tensore è (2,2,2).

Tipo

Il tipo rappresenta il tipo di dati che contengono i valori in un tensore. In genere, tutti i valori in un tensore contengono un tipo di dati identico. I tipi di dati in TensorFlow sono i seguenti:

  • numeri interi
  • virgola mobile
  • numeri interi senza segno
  • booleani
  • stringhe
  • intero con ops quantizzate
  • numeri complessi

Grafico

Un grafico è un insieme di calcoli che avvengono successivamente sui tensori di input. Comprende una disposizione di nodi che rappresentano le operazioni matematiche in un modello.

Sessione

Una sessione in TensorFlow esegue le operazioni nel grafico. Viene eseguito per valutare i nodi in un grafico.

Operatori

Gli operatori in TensorFlow sono operazioni matematiche predefinite.

Come funzionano i tensori?

In TensorFlow, i grafici del flusso di dati descrivono come i dati si spostano attraverso una serie di nodi di elaborazione. TensorFlow utilizza i grafici del flusso di dati per creare modelli. I calcoli dei grafi in TensorFlow sono facilitati dalle interconnessioni tra i tensori.

I tensori n-dimensionali vengono inviati alla rete neurale come input, che passa attraverso diverse operazioni per fornire l'output. I grafici hanno una rete di nodi, dove ogni nodo rappresenta un'operazione matematica. Ma il bordo tra i nodi è un array di dati multidimensionale o un tensore. Una sessione TensorFlow consente l'esecuzione di grafici o parti di grafici. Per questo, la sessione alloca le risorse su una o più macchine e conserva i valori effettivi dei risultati e delle variabili intermedie.

funzioni del tensore

Fonte

Le applicazioni TensorFlow possono essere eseguite su quasi tutti i target convenienti, che potrebbero essere CPU, GPU, un cluster nel cloud, una macchina locale o dispositivi Android e iOS.

Grafico di calcolo TensorFlow

Un grafico di calcolo in TensorFlow è una rete di nodi in cui ogni nodo opera moltiplicazioni, addizioni o valuta qualche equazione multivariata. In TensorFlow, i codici vengono scritti per creare un grafico, eseguire una sessione ed eseguire il grafico. Ogni variabile che assegniamo diventa un nodo in cui possiamo eseguire operazioni matematiche come moltiplicazioni e addizioni.

Ecco un semplice esempio per mostrare la creazione di un grafico di calcolo:

Supponiamo di voler eseguire il calcolo: F(x,y,z) = (x+y)*z.

Le tre variabili x, yez si tradurranno in tre nodi nel grafico mostrato di seguito:

Grafico di calcolo TensorFlow

Fonte

Passaggi per costruire il grafico:

Passaggio 1: assegnare le variabili. In questo esempio, i valori sono:

x = 1, y = 2 e z = 3

Passaggio 2: aggiungi x e y.

Passaggio 3: moltiplica z per la somma di xey.

Infine, otteniamo il risultato come '9.'

Oltre ai nodi a cui abbiamo assegnato le variabili, il grafico ha altri due nodi: uno per l'operazione di addizione e l'altro per l'operazione di moltiplicazione. Quindi, ci sono cinque nodi in tutto.

Elementi di programmazione fondamentali in TensorFlow

In TensorFlow, possiamo assegnare i dati a tre diversi tipi di elementi di dati: costanti, variabili e segnaposto.

Diamo un'occhiata a cosa rappresenta ciascuno di questi elementi di dati.

1. Costanti

Come evidente dal nome, le costanti sono parametri con valori immutabili. In TensorFlow, una costante viene definita utilizzando il comando tf.constant() . Durante il calcolo, i valori delle costanti non possono essere modificati.

Ecco un esempio:

c = tf.costante(2.0,tf.float32)

d = tf.costante(3.0)

Stampa (c,d)

2. Variabili

Le variabili consentono l'aggiunta di nuovi parametri al grafico. Il comando tf.variable() definisce una variabile che deve essere inizializzata prima di eseguire il grafico in una sessione.

Ecco un esempio:

Y = tf.Variable([.4],dtype=tf.float32)

a = tf.Variable([-.4],dtype=tf.float32)

b = tf.placeholder(tf.float32)

modello_lineare = Y*b+a

3. Segnaposto

Utilizzando i segnaposto, è possibile inserire i dati in un modello dall'esterno. Consente l'assegnazione successiva di valori. Il comando tf.placeholder() definisce un segnaposto.

Ecco un esempio:

c = tf.placeholder(tf.float32)

d = c*2

risultato = sess.run(d,feed_out={c:3.0})

Il segnaposto viene utilizzato principalmente per alimentare un modello. I dati dall'esterno vengono inseriti in un grafico utilizzando un nome di variabile (il nome della variabile nell'esempio sopra è feed_out). Successivamente, durante l'esecuzione della sessione, specifichiamo come vogliamo alimentare i dati nel modello.

Esempio di una sessione:

L'esecuzione del grafico avviene chiamando una sessione. Viene eseguita una sessione per valutare i nodi del grafico, denominata runtime TensorFlow. Il comando sess = tf.Session() crea una sessione.

Esempio:

x = tf.costante(3.0)

y = tf.costante(4.0)

z = x+y

sess = tf.Session() #Launching Session

print(sess.run(z)) #Valutazione del tensore z

Nell'esempio sopra, ci sono tre nodi: x, yez. Il nodo 'z' è dove viene eseguita l'operazione matematica e, successivamente, si ottiene il risultato. Dopo aver creato una sessione ed eseguito il nodo z, verranno prima creati i nodi xey. Quindi, l'operazione di addizione avverrà al nodo z. Quindi, otterremo il risultato '7'.

Fai avanzare la tua carriera in ML e Deep Learning con upGrad

Cerchi il posto migliore per saperne di più su cosa è TensorFlow ? Allora upGrad è qui per assisterti nel tuo percorso di apprendimento.

Con una base di studenti che copre oltre 85 paesi, upGrad è la più grande piattaforma EdTech superiore dell'Asia meridionale che ha avuto un impatto su oltre 500.000 professionisti che lavorano in tutto il mondo. Con docenti di livello mondiale, collaborazioni con partner del settore, la tecnologia più recente e le pratiche pedagogiche più aggiornate, upGrad garantisce un'esperienza di apprendimento sana e coinvolgente per i suoi oltre 40.000 studenti pagati in tutto il mondo.

Il programma Advanced Certificate in Machine learning e Deep Learning è un corso di 6 mesi accademicamente rigoroso e rilevante per il settore che copre i concetti di Deep Learning.

Punti salienti del programma:

  • Prestigioso riconoscimento da IIIT Bangalore
  • Oltre 240 ore di contenuti con oltre 5 casi di studio e progetti, oltre 24 sessioni dal vivo e oltre 15 sessioni di coaching di esperti
  • Copertura completa di 12 strumenti, linguaggi e librerie (incluso TensorFlow)
  • Assistenza professionale a 360 gradi, sessioni di tutoraggio e opportunità di networking peer-to-peer

Il Master of Science in Machine Learning e Intelligenza Artificiale di upGrad è un programma solido di 18 mesi per coloro che desiderano apprendere e perfezionarsi con tecnologie avanzate di Machine Learning e cloud.

Punti salienti del programma:

  • Prestigioso riconoscimento dalla Liverpool John Moores University e dall'IIT Madras
  • Oltre 650 ore di contenuti con oltre 25 casi di studio e progetti, oltre 20 sessioni dal vivo e oltre 8 incarichi di codifica
  • Copertura completa di 7 strumenti e linguaggi di programmazione (incluso TensorFlow)
  • Assistenza professionale a 360 gradi, sessioni di tutoraggio e opportunità di networking peer-to-peer

Conclusione

Machine Learning e Intelligenza Artificiale continuano ad evolversi. Quello che una volta era il tema dei film di fantascienza ora è una realtà. Dai consigli sui film Netflix e gli assistenti virtuali alle auto a guida autonoma e alla scoperta di droghe, l'apprendimento automatico ha un impatto su tutte le dimensioni della nostra vita. Inoltre, con strumenti come TensorFlow, le innovazioni nell'apprendimento automatico hanno raggiunto nuove vette. La libreria open source è senza dubbio un vantaggio per sviluppatori e professionisti in erba che innovano tecnologie basate sull'apprendimento automatico.

Allora, cosa stai aspettando? Inizia a imparare con upGrad oggi stesso!

A cosa serve TensorFlow?

TensorFlow Python è una piattaforma open source che consente agli sviluppatori di creare reti neurali su larga scala. Alcuni dei casi d'uso principali di TensorFlow includono applicazioni basate su testo (come il rilevamento di frodi), il riconoscimento vocale, il riconoscimento di immagini, il rilevamento di video e l'analisi di dati di serie temporali.

TensorFlow è scritto in Python o C++?

TensorFlow consente di implementare le API front-end utilizzando vari linguaggi come Python, R, C e C++. Tuttavia, il runtime in TensorFlow viene scritto utilizzando il linguaggio C++.

TensorFlow ha bisogno di codifica?

Poiché TensorFlow è una libreria open source per l'apprendimento automatico, ci sono quattro aree principali che è necessario padroneggiare. Sebbene le competenze di codifica siano un must, gli altri componenti critici dell'educazione all'apprendimento automatico sono la matematica e la statistica, la teoria dell'apprendimento automatico e l'esperienza pratica nella creazione di progetti di apprendimento automatico da zero.