Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Grundläggande Operationer: Linjär Algebra | Tensorer
Introduktion till Tensorflow

bookGrundläggande Operationer: Linjär Algebra

Linjära algebraoperationer

TensorFlow erbjuder en uppsättning funktioner dedikerade till linjär algebra, vilket gör matrismodellering enkel.

Matris­multiplikation

Här är en snabb påminnelse om hur matris­multiplikation fungerar.

Det finns två likvärdiga metoder för matris­multiplikation:

  • Funktionen tf.matmul();
  • Användning av @-operatorn.
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
Notera

Multiplicering av matriser med storlek 3x2 och 2x4 ger en matris av storlek 3x4.

Matrisinversion

Du kan erhålla inversen av en matris med funktionen tf.linalg.inv(). Låt oss dessutom verifiera en grundläggande egenskap hos inversa matriser.

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
Notering

Multiplicera en matris med dess invers bör ge en identitetsmatris, som har ettor på huvuddiagonalen och nollor på alla andra positioner. Dessutom erbjuder modulen tf.linalg ett brett utbud av linjär algebra-funktioner. För ytterligare information eller mer avancerade operationer, se dess officiella dokumentation.

Transponera

En transponerad matris kan erhållas med funktionen 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

Skalärprodukt

Du kan erhålla en skalärprodukt med funktionen tf.tensordot(). Genom att ange ett axes-argument kan du välja längs vilka axlar produkten ska beräknas. Till exempel, för två vektorer med axes=1 får du den klassiska skalärprodukten mellan vektorer. Men om du anger axes=0 får du en broadcastad matris längs 0-axeln:

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
Observera

Om du tar två matriser med lämpliga dimensioner (NxM @ MxK, där NxM representerar dimensionerna för den första matrisen och MxK för den andra), och beräknar skalärprodukten längs axes=1, utförs i princip matrismultiplikation.

Uppgift

Swipe to start coding

Bakgrund

Ett system av linjära ekvationer kan representeras i matrisform med ekvationen:

AX = B

Där:

  • A är en koefficientmatris;
  • X är en kolonnmatris med variabler;
  • B är en kolonnmatris som representerar värdena på höger sida av ekvationerna.

Lösningen till detta system kan hittas med formeln:

X = A^-1 B

Där A^-1 är inversen av matrisen A.

Syfte

Givet ett system av linjära ekvationer, använd TensorFlow för att lösa det. Du får följande system av linjära ekvationer:

  1. 2x + 3y - z = 1.
  2. 4x + y + 2z = 2.
  3. -x + 2y + 3z = 3.
Dot Product
  1. Representera ekvationssystemet i matrisform (dela upp det i matriserna A och B).
  2. Använd TensorFlow för att hitta inversen av matrisen A.
  3. Multiplicera inversen av matrisen A med matrisen B för att hitta lösningsmatrisen X, som innehåller värdena för x, y och z.

Observera

Slicing i TensorFlow fungerar på liknande sätt som i NumPy. Därför hämtar X[:, 0] alla element från kolumnen med index 0. Vi kommer att gå igenom slicing senare i kursen.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 9
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

Awesome!

Completion rate improved to 5.56

bookGrundläggande Operationer: Linjär Algebra

Svep för att visa menyn

Linjära algebraoperationer

TensorFlow erbjuder en uppsättning funktioner dedikerade till linjär algebra, vilket gör matrismodellering enkel.

Matris­multiplikation

Här är en snabb påminnelse om hur matris­multiplikation fungerar.

Det finns två likvärdiga metoder för matris­multiplikation:

  • Funktionen tf.matmul();
  • Användning av @-operatorn.
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
Notera

Multiplicering av matriser med storlek 3x2 och 2x4 ger en matris av storlek 3x4.

Matrisinversion

Du kan erhålla inversen av en matris med funktionen tf.linalg.inv(). Låt oss dessutom verifiera en grundläggande egenskap hos inversa matriser.

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
Notering

Multiplicera en matris med dess invers bör ge en identitetsmatris, som har ettor på huvuddiagonalen och nollor på alla andra positioner. Dessutom erbjuder modulen tf.linalg ett brett utbud av linjär algebra-funktioner. För ytterligare information eller mer avancerade operationer, se dess officiella dokumentation.

Transponera

En transponerad matris kan erhållas med funktionen 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

Skalärprodukt

Du kan erhålla en skalärprodukt med funktionen tf.tensordot(). Genom att ange ett axes-argument kan du välja längs vilka axlar produkten ska beräknas. Till exempel, för två vektorer med axes=1 får du den klassiska skalärprodukten mellan vektorer. Men om du anger axes=0 får du en broadcastad matris längs 0-axeln:

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
Observera

Om du tar två matriser med lämpliga dimensioner (NxM @ MxK, där NxM representerar dimensionerna för den första matrisen och MxK för den andra), och beräknar skalärprodukten längs axes=1, utförs i princip matrismultiplikation.

Uppgift

Swipe to start coding

Bakgrund

Ett system av linjära ekvationer kan representeras i matrisform med ekvationen:

AX = B

Där:

  • A är en koefficientmatris;
  • X är en kolonnmatris med variabler;
  • B är en kolonnmatris som representerar värdena på höger sida av ekvationerna.

Lösningen till detta system kan hittas med formeln:

X = A^-1 B

Där A^-1 är inversen av matrisen A.

Syfte

Givet ett system av linjära ekvationer, använd TensorFlow för att lösa det. Du får följande system av linjära ekvationer:

  1. 2x + 3y - z = 1.
  2. 4x + y + 2z = 2.
  3. -x + 2y + 3z = 3.
Dot Product
  1. Representera ekvationssystemet i matrisform (dela upp det i matriserna A och B).
  2. Använd TensorFlow för att hitta inversen av matrisen A.
  3. Multiplicera inversen av matrisen A med matrisen B för att hitta lösningsmatrisen X, som innehåller värdena för x, y och z.

Observera

Slicing i TensorFlow fungerar på liknande sätt som i NumPy. Därför hämtar X[:, 0] alla element från kolumnen med index 0. Vi kommer att gå igenom slicing senare i kursen.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 9
single

single

some-alt