Lineaire Algebra
Lineaire algebra-bewerkingen
TensorFlow biedt een reeks functies die zijn toegewijd aan lineaire algebra-bewerkingen, waardoor matrixbewerkingen eenvoudig worden.
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.
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)
Het vermenigvuldigen van matrices van grootte 3x2 en 2x4 levert een matrix van 3x4 op.
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.
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)
Het 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 kun je de officiële documentatie raadplegen.
Transponeren
Een getransponeerde matrix verkrijgen met de functie 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)
Inwendig product
Het inwendig product kan worden verkregen met de functie tf.tensordot(). Door het instellen van een axes-argument kun je kiezen langs welke assen het inwendig product wordt berekend. Bijvoorbeeld, voor twee vectoren krijg je met axes=1 het klassieke inwendig product tussen vectoren. Maar als je axes=0 instelt, krijg je een gebroadcasted matrix langs de 0-as:
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)
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 scalair product berekent over axes=1, voer je in feite matrixvermenigvuldiging uit.
Bedankt voor je feedback!
single
Lineaire Algebra
Veeg om het menu te tonen
Lineaire algebra-bewerkingen
TensorFlow biedt een reeks functies die zijn toegewijd aan lineaire algebra-bewerkingen, waardoor matrixbewerkingen eenvoudig worden.
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.
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)
Het vermenigvuldigen van matrices van grootte 3x2 en 2x4 levert een matrix van 3x4 op.
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.
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)
Het 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 kun je de officiële documentatie raadplegen.
Transponeren
Een getransponeerde matrix verkrijgen met de functie 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)
Inwendig product
Het inwendig product kan worden verkregen met de functie tf.tensordot(). Door het instellen van een axes-argument kun je kiezen langs welke assen het inwendig product wordt berekend. Bijvoorbeeld, voor twee vectoren krijg je met axes=1 het klassieke inwendig product tussen vectoren. Maar als je axes=0 instelt, krijg je een gebroadcasted matrix langs de 0-as:
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)
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 scalair product berekent over axes=1, voer je in feite matrixvermenigvuldiging uit.
Veeg om te beginnen met coderen
Achtergrond
Een stelsel van lineaire vergelijkingen kan in matrixvorm worden weergegeven met de vergelijking:
AX = B
Waarbij:
Aeen matrix van coëfficiënten is;Xeen kolommatrix van variabelen is;Been 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 dit op te lossen. Je krijgt het volgende stelsel van lineaire vergelijkingen:
2x + 3y - z = 1.4x + y + 2z = 2.-x + 2y + 3z = 3.
- Zet het stelsel van vergelijkingen om in matrixvorm (splits het in matrices
AenB). - Gebruik TensorFlow om de inverse van matrix
Ate vinden. - Vermenigvuldig de inverse van matrix
Amet matrixBom de oplossingsmatrixXte vinden, die de waarden vanx,yenzbevat.
Opmerking
Slicing in TensorFlow werkt vergelijkbaar met NumPy. Dus,
X[:, 0]haalt alle elementen op uit de kolom met index0. We behandelen slicing later in de cursus.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.