Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Basisbewerkingen: Lineaire Algebra | Tensoren
Introductie tot TensorFlow

bookBasisbewerkingen: Lineaire Algebra

Lineaire Algebraïsche Bewerkingen

TensorFlow biedt een reeks functies speciaal voor lineaire algebra-bewerkingen, waardoor matrixbewerkingen eenvoudig uit te voeren zijn.

Matrixvermenigvuldiging

Hier volgt een korte herinnering aan hoe matrixvermenigvuldiging werkt.

Er zijn twee gelijkwaardige benaderingen voor matrixvermenigvuldiging:

  • De functie tf.matmul();
  • Het gebruik van de @-operator.
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
Opmerking

Vermenigvuldiging van matrices met afmetingen 3x2 en 2x4 resulteert in een matrix van 3x4.

Matrixinversie

De inverse van een matrix kan worden verkregen met de functie tf.linalg.inv(). Laten we daarnaast een fundamentele eigenschap van de inverse matrix verifiëren.

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
Opmerking

Vermenigvuldigen van een matrix met zijn inverse levert een identiteitsmatrix op, die enen op de hoofddiagonaal en nullen elders bevat. Daarnaast biedt de module tf.linalg een breed scala aan lineaire algebra-functies. Voor meer informatie of geavanceerdere bewerkingen, raadpleeg de officiële documentatie.

Transponeren

Een getransponeerde matrix verkrijgen met de functie 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

Inwendig product

Het inwendig product kan worden verkregen met de functie tf.tensordot(). Door het argument axes in te stellen, kan worden gekozen langs welke assen het inwendig product wordt berekend. Bijvoorbeeld, voor twee vectoren levert axes=1 het klassieke inwendig product tussen vectoren op. Bij het instellen van axes=0 wordt een gebroadcast matrix langs as 0 verkregen:

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
Opmerking

Als je twee matrices met geschikte afmetingen (NxM @ MxK, waarbij NxM de afmetingen van de eerste matrix en MxK die van de tweede matrix weergeeft) neemt en het inwendig product berekent over axes=1, voer je in wezen matrixvermenigvuldiging uit.

Taak

Swipe to start coding

Achtergrond

Een stelsel van lineaire vergelijkingen kan in matrixvorm worden weergegeven met de vergelijking:

AX = B

Waarbij:

  • A een matrix van coëfficiënten is;
  • X een kolommatrix van variabelen is;
  • B een kolommatrix is die de waarden aan de rechterkant van de vergelijkingen weergeeft.

De oplossing voor dit stelsel kan worden gevonden met de formule:

X = A^-1 B

Waarbij A^-1 de inverse is van matrix A.

Doelstelling

Gegeven een stelsel van lineaire vergelijkingen, gebruik TensorFlow om het op te lossen. Je krijgt het volgende stelsel van lineaire vergelijkingen:

  1. 2x + 3y - z = 1.
  2. 4x + y + 2z = 2.
  3. -x + 2y + 3z = 3.
Dot Product
  1. Zet het stelsel van vergelijkingen om in matrixvorm (splits het in matrices A en B).
  2. Gebruik TensorFlow om de inverse van matrix A te vinden.
  3. Vermenigvuldig de inverse van matrix A met matrix B om de oplossingsmatrix X te vinden, die de waarden van x, y en z bevat.

Opmerking

Slicing in TensorFlow werkt vergelijkbaar met NumPy. Daarom haalt X[:, 0] alle elementen op uit de kolom met index 0. We behandelen slicing later in de cursus.

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 9
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

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

bookBasisbewerkingen: Lineaire Algebra

Veeg om het menu te tonen

Lineaire Algebraïsche Bewerkingen

TensorFlow biedt een reeks functies speciaal voor lineaire algebra-bewerkingen, waardoor matrixbewerkingen eenvoudig uit te voeren zijn.

Matrixvermenigvuldiging

Hier volgt een korte herinnering aan hoe matrixvermenigvuldiging werkt.

Er zijn twee gelijkwaardige benaderingen voor matrixvermenigvuldiging:

  • De functie tf.matmul();
  • Het gebruik van de @-operator.
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
Opmerking

Vermenigvuldiging van matrices met afmetingen 3x2 en 2x4 resulteert in een matrix van 3x4.

Matrixinversie

De inverse van een matrix kan worden verkregen met de functie tf.linalg.inv(). Laten we daarnaast een fundamentele eigenschap van de inverse matrix verifiëren.

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
Opmerking

Vermenigvuldigen van een matrix met zijn inverse levert een identiteitsmatrix op, die enen op de hoofddiagonaal en nullen elders bevat. Daarnaast biedt de module tf.linalg een breed scala aan lineaire algebra-functies. Voor meer informatie of geavanceerdere bewerkingen, raadpleeg de officiële documentatie.

Transponeren

Een getransponeerde matrix verkrijgen met de functie 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

Inwendig product

Het inwendig product kan worden verkregen met de functie tf.tensordot(). Door het argument axes in te stellen, kan worden gekozen langs welke assen het inwendig product wordt berekend. Bijvoorbeeld, voor twee vectoren levert axes=1 het klassieke inwendig product tussen vectoren op. Bij het instellen van axes=0 wordt een gebroadcast matrix langs as 0 verkregen:

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
Opmerking

Als je twee matrices met geschikte afmetingen (NxM @ MxK, waarbij NxM de afmetingen van de eerste matrix en MxK die van de tweede matrix weergeeft) neemt en het inwendig product berekent over axes=1, voer je in wezen matrixvermenigvuldiging uit.

Taak

Swipe to start coding

Achtergrond

Een stelsel van lineaire vergelijkingen kan in matrixvorm worden weergegeven met de vergelijking:

AX = B

Waarbij:

  • A een matrix van coëfficiënten is;
  • X een kolommatrix van variabelen is;
  • B een kolommatrix is die de waarden aan de rechterkant van de vergelijkingen weergeeft.

De oplossing voor dit stelsel kan worden gevonden met de formule:

X = A^-1 B

Waarbij A^-1 de inverse is van matrix A.

Doelstelling

Gegeven een stelsel van lineaire vergelijkingen, gebruik TensorFlow om het op te lossen. Je krijgt het volgende stelsel van lineaire vergelijkingen:

  1. 2x + 3y - z = 1.
  2. 4x + y + 2z = 2.
  3. -x + 2y + 3z = 3.
Dot Product
  1. Zet het stelsel van vergelijkingen om in matrixvorm (splits het in matrices A en B).
  2. Gebruik TensorFlow om de inverse van matrix A te vinden.
  3. Vermenigvuldig de inverse van matrix A met matrix B om de oplossingsmatrix X te vinden, die de waarden van x, y en z bevat.

Opmerking

Slicing in TensorFlow werkt vergelijkbaar met NumPy. Daarom haalt X[:, 0] alle elementen op uit de kolom met index 0. We behandelen slicing later in de cursus.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 9
single

single

some-alt