Cosa sono i tensori?
In ambito AI diventa estremamente importante imparare a maneggiare e gestire i dati sotto forma di tensori. Bisogna tener presente che nel deep learning, infatti, i dati vengono trattati esclusivamente come Tensori. Ma cosa sono?
Una definizione formale potrebbe essere la seguente: un tensore è un oggetto matematico definito in spazio vettoriale e quindi non dipendente da un particolare sistema di riferimento. Ok ma che significa? Possiamo provare a semplificare dicendo che i tensori sono la naturale generalizzazione del concetto di vettore ovvero di un oggetto che ha dimensioni e direzioni. Interessante ma cosa significa? potrei andare avanti così 🙂 Proverò a dare una spiegazione approcciandola esclusivamente dal punto di vista informatico.
Un array in informatica, indica una struttura dati complessa, statica e omogenea, ed un vettore è definibile come un array monodimenzionale 1D ovvero una lista di numeri.
V = [1 3 5 8]
I vettori possono a loro volta essere suddivisi in componenti più semplici gli elementi a cui si fa riferimeto con gli indici. Dunque con si indica l’elemento i-esimo.
Una matrice invece è un array bidimensionale 2D:
In una matrice indica l’elemento della riga i-esima e della colonna j-esima.
Così facendo, aggiungendo una dimensione, potremmo disegnare una “matrice cubica” etc etc … per analogia si arriva così alla definizione di tensore.
Il tensore è un array multidimensionale, pertanto sia il vettore che la matrice sono esempi di tensori a dimensione rispettivamente 1 e 2.
A questo punto possiamo introdurre due proprietà fondamentali dei tensori, di cui avremo modo di sentirne parlare anche in ambito AI.
- Rank indica il numero di dimensioni del Tensore (Una matrice cubica ad es. ha grado 3, una matrice ha grado 2).
- Shape rappresenta la forma del tensore e viene espresso nel seguente formato n x m x k nel caso di una matrice cubica. (ad esempio una matrice cubica può avere forma 1x1x1 o 2x5x7).
Facciamo qualche esempio:
Un Tensore con Rank=2 e Shape=2×4 è una matrice con 2 righe e 4 colonne
Un Tensore con Rank=2 e Shape=4×2 è una matrice di 4 righe e 2 colonne.
Un tensore di 5 elementi ad una sola dimensione è un vettore V = [1 , 3 , 5, 8]
Come si può rappresentare ed usare un vettore in python? la via più semplice è di usare numpy una libreria matematica molto interessante.
Pertanto rifacendoci all’esempio precedente del vettore V in Python dobbiamo scrivere qualcosa del genere:
import numpy as np v=np.array([1,3,5,8])
A questo punto possiamo utilizzare python per calcolare ad esempio shape e rank di v
np.shape(v)
il cui risultato è (4,) ovvero un tesnore con un sola dimensione a 4 elementi
np.rank(v)
il cui risultato è 1 dimensione.
Facciamo un altro esempio; ragioniamo su una matrice :
In Python avremo:
>>> M = np.array([[1,2,3],[3,4,5]]) >>> np.shape(M) (2, 3) >>> np.rank(M) 2 >>>
In questo caso dunque avremo :
shape= 2 x 3 rank = 2

Comments