Grundlæ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.
1234567891011121314import 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)
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.
123456789101112131415import 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)
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()
.
123456789101112import 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)
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:
1234567891011121314import 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)
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.
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:
2x + 3y - z = 1
.4x + y + 2z = 2
.-x + 2y + 3z = 3
.

- Repræsenter ligningssystemet i matrixform (opdel det i matricerne
A
ogB
). - Brug TensorFlow til at finde den inverse af matrix
A
. - Multiplicer den inverse af matrix
A
med matrixB
for at finde løsningsmatricenX
, som indeholder værdierne forx
,y
ogz
.
Bemærk
Slicing i TensorFlow fungerer på samme måde som i NumPy. Derfor vil
X[:, 0]
hente alle elementer fra kolonnen med indeks0
. Vi kommer nærmere ind på slicing senere i kurset.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
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?
Awesome!
Completion rate improved to 5.56
Grundlæ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.
1234567891011121314import 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)
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.
123456789101112131415import 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)
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()
.
123456789101112import 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)
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:
1234567891011121314import 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)
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.
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:
2x + 3y - z = 1
.4x + y + 2z = 2
.-x + 2y + 3z = 3
.

- Repræsenter ligningssystemet i matrixform (opdel det i matricerne
A
ogB
). - Brug TensorFlow til at finde den inverse af matrix
A
. - Multiplicer den inverse af matrix
A
med matrixB
for at finde løsningsmatricenX
, som indeholder værdierne forx
,y
ogz
.
Bemærk
Slicing i TensorFlow fungerer på samme måde som i NumPy. Derfor vil
X[:, 0]
hente alle elementer fra kolonnen med indeks0
. Vi kommer nærmere ind på slicing senere i kurset.
Løsning
Tak for dine kommentarer!
single