Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Grundlæggende Operationer: Lineær Algebra | Tensorer
Introduktion til Tensorflow

bookGrundlæggende Operationer: Lineær Algebra

Lineær algebra-operationer

TensorFlow tilbyder et udvalg af funktioner dedikeret til lineær algebra-operationer, hvilket gør matrixoperationer enkle.

Matrixmultiplikation

Her er en hurtig påmindelse om, hvordan matrixmultiplikation fungerer.

Der findes to ækvivalente tilgange til matrixmultiplikation:

  • Funktionen tf.matmul();
  • Brug af @-operatoren.
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
Bemærk

Multiplikation af matricer med størrelserne 3x2 og 2x4 resulterer i en matrix på 3x4.

Matrixinversion

Du kan opnå den inverse af en matrix ved at bruge funktionen tf.linalg.inv(). Lad os desuden verificere en grundlæggende egenskab ved den inverse matrix.

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
Bemærk

Multiplikation af en matrix med dens inverse skal give en identitetsmatrix, som har ettaller på hoveddiagonalen og nuller alle andre steder. Derudover tilbyder tf.linalg-modulet et bredt udvalg af lineære algebra-funktioner. For yderligere information eller mere avancerede operationer kan du konsultere dens officielle dokumentation.

Transponering

En transponeret matrix kan opnås ved hjælp af 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

Prikprodukt

Du kan opnå et prikprodukt ved at bruge funktionen tf.tensordot(). Ved at angive et axes-argument kan du vælge, langs hvilke akser prikproduktet skal beregnes. For eksempel, for to vektorer, ved at sætte axes=1, får du det klassiske prikprodukt mellem vektorer. Men når du sætter axes=0, får du en broadcastet matrix langs 0-aksen:

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
Bemærk

Hvis du tager to matricer med passende dimensioner (NxM @ MxK, hvor NxM repræsenterer dimensionerne af den første matrix og MxK den anden), og beregner prikproduktet langs axes=1, udfører det i bund og grund matrixmultiplikation.

Opgave

Swipe to start coding

Baggrund

Et system af lineære ligninger kan repræsenteres i matrixform ved hjælp af ligningen:

AX = B

Hvor:

  • A er en matrix med koefficienter;
  • X er en kolonnematrix med variabler;
  • B er en kolonnematrix, der repræsenterer værdierne på højre side af ligningerne.

Løsningen på dette system kan findes ved hjælp af formlen:

X = A^-1 B

Hvor A^-1 er den inverse matrix af A.

Formål

Givet et system af lineære ligninger, brug TensorFlow til at løse det. Du får følgende system af lineære ligninger:

  1. 2x + 3y - z = 1.
  2. 4x + y + 2z = 2.
  3. -x + 2y + 3z = 3.
Dot Product
  1. Repræsenter ligningssystemet i matrixform (opdel det i matricerne A og B).
  2. Brug TensorFlow til at finde den inverse af matrix A.
  3. Multiplicer den inverse af matrix A med matrix B for at finde løsningsmatricen X, som indeholder værdierne for x, y og z.

Bemærk

Slicing i TensorFlow fungerer på samme måde som i NumPy. Derfor vil X[:, 0] hente alle elementer fra kolonnen med indeks 0. Vi kommer nærmere ind på slicing senere i kurset.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 9
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

Can you explain the difference between tf.matmul() and the @ operator?

How do I interpret the output of the matrix inversion example?

Can you show more examples of using tf.tensordot() with different axes?

close

Awesome!

Completion rate improved to 5.56

bookGrundlæggende Operationer: Lineær Algebra

Stryg for at vise menuen

Lineær algebra-operationer

TensorFlow tilbyder et udvalg af funktioner dedikeret til lineær algebra-operationer, hvilket gør matrixoperationer enkle.

Matrixmultiplikation

Her er en hurtig påmindelse om, hvordan matrixmultiplikation fungerer.

Der findes to ækvivalente tilgange til matrixmultiplikation:

  • Funktionen tf.matmul();
  • Brug af @-operatoren.
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
Bemærk

Multiplikation af matricer med størrelserne 3x2 og 2x4 resulterer i en matrix på 3x4.

Matrixinversion

Du kan opnå den inverse af en matrix ved at bruge funktionen tf.linalg.inv(). Lad os desuden verificere en grundlæggende egenskab ved den inverse matrix.

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
Bemærk

Multiplikation af en matrix med dens inverse skal give en identitetsmatrix, som har ettaller på hoveddiagonalen og nuller alle andre steder. Derudover tilbyder tf.linalg-modulet et bredt udvalg af lineære algebra-funktioner. For yderligere information eller mere avancerede operationer kan du konsultere dens officielle dokumentation.

Transponering

En transponeret matrix kan opnås ved hjælp af 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

Prikprodukt

Du kan opnå et prikprodukt ved at bruge funktionen tf.tensordot(). Ved at angive et axes-argument kan du vælge, langs hvilke akser prikproduktet skal beregnes. For eksempel, for to vektorer, ved at sætte axes=1, får du det klassiske prikprodukt mellem vektorer. Men når du sætter axes=0, får du en broadcastet matrix langs 0-aksen:

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
Bemærk

Hvis du tager to matricer med passende dimensioner (NxM @ MxK, hvor NxM repræsenterer dimensionerne af den første matrix og MxK den anden), og beregner prikproduktet langs axes=1, udfører det i bund og grund matrixmultiplikation.

Opgave

Swipe to start coding

Baggrund

Et system af lineære ligninger kan repræsenteres i matrixform ved hjælp af ligningen:

AX = B

Hvor:

  • A er en matrix med koefficienter;
  • X er en kolonnematrix med variabler;
  • B er en kolonnematrix, der repræsenterer værdierne på højre side af ligningerne.

Løsningen på dette system kan findes ved hjælp af formlen:

X = A^-1 B

Hvor A^-1 er den inverse matrix af A.

Formål

Givet et system af lineære ligninger, brug TensorFlow til at løse det. Du får følgende system af lineære ligninger:

  1. 2x + 3y - z = 1.
  2. 4x + y + 2z = 2.
  3. -x + 2y + 3z = 3.
Dot Product
  1. Repræsenter ligningssystemet i matrixform (opdel det i matricerne A og B).
  2. Brug TensorFlow til at finde den inverse af matrix A.
  3. Multiplicer den inverse af matrix A med matrix B for at finde løsningsmatricen X, som indeholder værdierne for x, y og z.

Bemærk

Slicing i TensorFlow fungerer på samme måde som i NumPy. Derfor vil X[:, 0] hente alle elementer fra kolonnen med indeks 0. Vi kommer nærmere ind på slicing senere i kurset.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 9
single

single

some-alt