Come creare i tensori con Torch di Python

La funzione tensor mi permette di creare un tensore con il modulo Torch di Python

tensor(array)

L'argomento della funzione è un array

    Un esempio pratico

    Esempo 1: tensore in tre dimensioni

    Importo il modulo pytorch

    import pytorch as torch

    Poi creo un tensore 2x2x2 nello spazio a 3 dimensioni

    tensore = torch.tensor([[[1,2],[3,4]],[[5,6],[7,8]]])

    Verifico la dimensione tramite il metodo ndim

    tensore.ndim

    Il risultato è 3, il tensore ha tre dimensioni (x,y,z).

    3

    Per misurare la lunghezza del tensore nelle tre dimensioni uso il metodo shape

    tensore.shape

    Il tensore ha una lunghezza pari a 2 in ogni dimensione.

    torch.Size([2, 2, 2])

    Dal punto di vista pratico il tensore può essere immaginato come un cubo composto da due matrici affiancate

    In alternativa, posso immaginarlo come una vettore in cui ogni elemento è un matrice 2x2

    $$ \begin{pmatrix} \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} & \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} \end{pmatrix} $$

    Per prelevare un elemento dal tensore devo indicare le sue coordinate nelle tre dimensioni (x,y,z)

    Ad esempio, se digito tensore[0,0,0]

    tensore[0,0,0]

    Il comando legge il primo elemento in ogni dimensione, ossia il valore 1.

    $$ \begin{pmatrix} \begin{pmatrix} \color{red}1 & 2 \\ 3 & 4 \end{pmatrix} & \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} \end{pmatrix} $$

    Il risultato in output è

    tensor(1)

    Se digito tensore[1,1,1]

    tensore[1,1,1]

    Il comando legge l'ultimo elemento in ogni dimensione, ossia il valore 8.

    $$ \begin{pmatrix} \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} & \begin{pmatrix} 5 & 6 \\ 7 & \color{red}8 \end{pmatrix} \end{pmatrix} $$

    Il risultato in output è

    tensor(8)

    Esempo 2: tensore in quattro dimensioni

    Ora creo un tensore 2x2x2x2 in 4 dimensioni

    tensore4d = torch.tensor([[[[1,2],[3,4]],[[5,6],[7,8]]],[[[9,10],[11,12]],[[13,14],[15,16]]]])

    In questo caso non è facile immaginare questa struttura nello spazio perché ha quattro dimensioni.

    Posso però immaginare il tensore come una matrice 2x2 in cui ogni elemento è a sua volta una matrice 2x2

    $$ \begin{pmatrix} \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} & \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} \\ \begin{pmatrix} 9 & 10 \\ 11 & 12 \end{pmatrix} & \begin{pmatrix} 13 & 14 \\ 15 & 16 \end{pmatrix} \end{pmatrix} $$

    Verifico la dimensione tramite il metodo ndim

    tensore4d.ndim

    Il risultato è 4, il tensore ha quattro dimensioni (x,y,z,t).

    4

    Per misurare la lunghezza del tensore nelle quattro dimensioni uso il metodo shape

    tensore4d.shape

    Il tensore ha una lunghezza pari a 2 in ogni dimensione.

    torch.Size([2, 2, 2, 2])

    Anche in questo caso per leggere un singolo elemento del vettore devo indicare le quattro coordinate dell'elemento, ossia la sua posizione nella struttura.

    Ad esempio, se digito tensore4d[0,0,0,0]

    tensore4d[0,0,0,0]

    Il comando legge il primo elemento in ogni dimensione, ossia il valore 1.

    $$ \begin{pmatrix} \begin{pmatrix} \color{red}1 & 2 \\ 3 & 4 \end{pmatrix} & \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} \\ \begin{pmatrix} 9 & 10 \\ 11 & 12 \end{pmatrix} & \begin{pmatrix} 13 & 14 \\ 15 & 16 \end{pmatrix} \end{pmatrix} $$

    Se digito tensore4d[1,1,1,1]

    tensore4d[0,0,0,0]

    Il comando legge l'ultimo elemento in ogni dimensione, ossia il valore 16.

    $$ \begin{pmatrix} \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} & \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} \\ \begin{pmatrix} 9 & 10 \\ 11 & 12 \end{pmatrix} & \begin{pmatrix} 13 & 14 \\ 15 & \color{red}{16} \end{pmatrix} \end{pmatrix} $$

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    PyTorch