Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Operazioni di Base: Algebra Lineare | Tensori
Introduzione a TensorFlow

bookOperazioni di Base: Algebra Lineare

Operazioni di Algebra Lineare

TensorFlow offre una serie di funzioni dedicate alle operazioni di algebra lineare, rendendo semplici le operazioni con le matrici.

Moltiplicazione di Matrici

Ecco un breve promemoria su come funziona la moltiplicazione di matrici.

Esistono due approcci equivalenti per la moltiplicazione di matrici:

  • La funzione tf.matmul();
  • L'utilizzo dell'operatore @.
1234567891011121314
import tensorflow as tf # Create two matrices matrix1 = tf.constant([[1, 2], [3, 4], [2, 1]]) matrix2 = tf.constant([[2, 0, 2, 5], [2, 2, 1, 3]]) # Multiply the matrices product1 = tf.matmul(matrix1, matrix2) product2 = matrix1 @ matrix2 # Display tensors print(product1) print('-' * 50) print(product2)
copy
Note
Nota

La moltiplicazione di matrici di dimensione 3x2 e 2x4 produrrà una matrice di dimensione 3x4.

Inversione di Matrice

È possibile ottenere l'inversa di una matrice utilizzando la funzione tf.linalg.inv(). Inoltre, verifichiamo una proprietà fondamentale della matrice inversa.

123456789101112131415
import tensorflow as tf # Create 2x2 matrix matrix = tf.constant([[1., 2.], [3., 4.]]) # Compute the inverse of a matrix inverse_mat = tf.linalg.inv(matrix) # Check the result identity = matrix @ inverse_mat # Display tensors print(inverse_mat) print('-' * 50) print(identity)
copy
Note
Nota

La moltiplicazione di una matrice per la sua inversa dovrebbe restituire una matrice identità, che presenta uno sulla diagonale principale e zeri altrove. Inoltre, il modulo tf.linalg offre una vasta gamma di funzioni di algebra lineare. Per ulteriori dettagli o operazioni più avanzate, è possibile consultare la sua documentazione ufficiale.

Trasposta

È possibile ottenere una matrice trasposta utilizzando la funzione tf.transpose().

123456789101112
import tensorflow as tf # Create a matrix 3x2 matrix = tf.constant([[1, 2], [3, 4], [2, 1]]) # Get the transpose of a matrix transposed = tf.transpose(matrix) # Display tensors print(matrix) print('-' * 40) print(transposed)
copy

Prodotto scalare

È possibile ottenere un prodotto scalare utilizzando la funzione tf.tensordot(). Impostando l'argomento axes è possibile scegliere su quali assi calcolare il prodotto scalare. Ad esempio, per due vettori impostando axes=1 si ottiene il classico prodotto scalare tra vettori. Invece, impostando axes=0 si ottiene una matrice broadcasted lungo l'asse 0:

1234567891011121314
import tensorflow as tf # Create two vectors matrix1 = tf.constant([1, 2, 3, 4]) matrix2 = tf.constant([2, 0, 2, 5]) # Compute the dot product of two tensors dot_product_axes1 = tf.tensordot(matrix1, matrix2, axes=1) dot_product_axes0 = tf.tensordot(matrix1, matrix2, axes=0) # Display tensors print(dot_product_axes1) print('-' * 40) print(dot_product_axes0)
copy
Note
Nota

Se si prendono due matrici con dimensioni appropriate (NxM @ MxK, dove NxM rappresenta le dimensioni della prima matrice e MxK quelle della seconda), e si calcola il prodotto scalare lungo axes=1, si esegue essenzialmente una moltiplicazione di matrici.

Compito

Swipe to start coding

Contesto

Un sistema di equazioni lineari può essere rappresentato in forma matriciale utilizzando l'equazione:

AX = B

Dove:

  • A è una matrice di coefficienti;
  • X è una matrice colonna di variabili;
  • B è una matrice colonna che rappresenta i valori sul lato destro delle equazioni.

La soluzione di questo sistema può essere trovata utilizzando la formula:

X = A^-1 B

Dove A^-1 è l'inversa della matrice A.

Obiettivo

Dato un sistema di equazioni lineari, utilizzare TensorFlow per risolverlo. Ti viene fornito il seguente sistema di equazioni lineari:

  1. 2x + 3y - z = 1.
  2. 4x + y + 2z = 2.
  3. -x + 2y + 3z = 3.
Dot Product
  1. Rappresentare il sistema di equazioni in forma matriciale (separandolo nelle matrici A e B).
  2. Utilizzare TensorFlow per trovare l'inversa della matrice A.
  3. Moltiplicare l'inversa della matrice A per la matrice B per trovare la matrice soluzione X, che contiene i valori di x, y e z.

Nota

Lo slicing in TensorFlow funziona in modo simile a NumPy. Pertanto, X[:, 0] recupererà tutti gli elementi dalla colonna all'indice 0. Affronteremo lo slicing più avanti nel corso.

Soluzione

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 9
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

close

Awesome!

Completion rate improved to 5.56

bookOperazioni di Base: Algebra Lineare

Scorri per mostrare il menu

Operazioni di Algebra Lineare

TensorFlow offre una serie di funzioni dedicate alle operazioni di algebra lineare, rendendo semplici le operazioni con le matrici.

Moltiplicazione di Matrici

Ecco un breve promemoria su come funziona la moltiplicazione di matrici.

Esistono due approcci equivalenti per la moltiplicazione di matrici:

  • La funzione tf.matmul();
  • L'utilizzo dell'operatore @.
1234567891011121314
import tensorflow as tf # Create two matrices matrix1 = tf.constant([[1, 2], [3, 4], [2, 1]]) matrix2 = tf.constant([[2, 0, 2, 5], [2, 2, 1, 3]]) # Multiply the matrices product1 = tf.matmul(matrix1, matrix2) product2 = matrix1 @ matrix2 # Display tensors print(product1) print('-' * 50) print(product2)
copy
Note
Nota

La moltiplicazione di matrici di dimensione 3x2 e 2x4 produrrà una matrice di dimensione 3x4.

Inversione di Matrice

È possibile ottenere l'inversa di una matrice utilizzando la funzione tf.linalg.inv(). Inoltre, verifichiamo una proprietà fondamentale della matrice inversa.

123456789101112131415
import tensorflow as tf # Create 2x2 matrix matrix = tf.constant([[1., 2.], [3., 4.]]) # Compute the inverse of a matrix inverse_mat = tf.linalg.inv(matrix) # Check the result identity = matrix @ inverse_mat # Display tensors print(inverse_mat) print('-' * 50) print(identity)
copy
Note
Nota

La moltiplicazione di una matrice per la sua inversa dovrebbe restituire una matrice identità, che presenta uno sulla diagonale principale e zeri altrove. Inoltre, il modulo tf.linalg offre una vasta gamma di funzioni di algebra lineare. Per ulteriori dettagli o operazioni più avanzate, è possibile consultare la sua documentazione ufficiale.

Trasposta

È possibile ottenere una matrice trasposta utilizzando la funzione tf.transpose().

123456789101112
import tensorflow as tf # Create a matrix 3x2 matrix = tf.constant([[1, 2], [3, 4], [2, 1]]) # Get the transpose of a matrix transposed = tf.transpose(matrix) # Display tensors print(matrix) print('-' * 40) print(transposed)
copy

Prodotto scalare

È possibile ottenere un prodotto scalare utilizzando la funzione tf.tensordot(). Impostando l'argomento axes è possibile scegliere su quali assi calcolare il prodotto scalare. Ad esempio, per due vettori impostando axes=1 si ottiene il classico prodotto scalare tra vettori. Invece, impostando axes=0 si ottiene una matrice broadcasted lungo l'asse 0:

1234567891011121314
import tensorflow as tf # Create two vectors matrix1 = tf.constant([1, 2, 3, 4]) matrix2 = tf.constant([2, 0, 2, 5]) # Compute the dot product of two tensors dot_product_axes1 = tf.tensordot(matrix1, matrix2, axes=1) dot_product_axes0 = tf.tensordot(matrix1, matrix2, axes=0) # Display tensors print(dot_product_axes1) print('-' * 40) print(dot_product_axes0)
copy
Note
Nota

Se si prendono due matrici con dimensioni appropriate (NxM @ MxK, dove NxM rappresenta le dimensioni della prima matrice e MxK quelle della seconda), e si calcola il prodotto scalare lungo axes=1, si esegue essenzialmente una moltiplicazione di matrici.

Compito

Swipe to start coding

Contesto

Un sistema di equazioni lineari può essere rappresentato in forma matriciale utilizzando l'equazione:

AX = B

Dove:

  • A è una matrice di coefficienti;
  • X è una matrice colonna di variabili;
  • B è una matrice colonna che rappresenta i valori sul lato destro delle equazioni.

La soluzione di questo sistema può essere trovata utilizzando la formula:

X = A^-1 B

Dove A^-1 è l'inversa della matrice A.

Obiettivo

Dato un sistema di equazioni lineari, utilizzare TensorFlow per risolverlo. Ti viene fornito il seguente sistema di equazioni lineari:

  1. 2x + 3y - z = 1.
  2. 4x + y + 2z = 2.
  3. -x + 2y + 3z = 3.
Dot Product
  1. Rappresentare il sistema di equazioni in forma matriciale (separandolo nelle matrici A e B).
  2. Utilizzare TensorFlow per trovare l'inversa della matrice A.
  3. Moltiplicare l'inversa della matrice A per la matrice B per trovare la matrice soluzione X, che contiene i valori di x, y e z.

Nota

Lo slicing in TensorFlow funziona in modo simile a NumPy. Pertanto, X[:, 0] recupererà tutti gli elementi dalla colonna all'indice 0. Affronteremo lo slicing più avanti nel corso.

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 9
single

single

some-alt