Basisbewerkingen: Lineaire Algebra
Lineaire Algebraïsche 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 resulteert in een matrix van 3x4.
Matrixinversie
De inverse van een matrix kan worden verkregen met de functie tf.linalg.inv(). Daarnaast wordt een fundamentele eigenschap van de inverse matrix gecontroleerd.
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 zou een identiteitsmatrix moeten opleveren, die enen op de hoofddiagonaal en nullen elders bevat. Daarnaast biedt de tf.linalg-module een breed scala aan lineaire algebra-functies. Voor meer details of geavanceerdere bewerkingen kunt u 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 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. Maar bij het instellen van axes=0 wordt een gebroadcast matrix langs as 0 verkregen:
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 dotproduct berekent over axes=1, wordt in feite matrixvermenigvuldiging uitgevoerd.
Swipe to start coding
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
Slicen in TensorFlow werkt vergelijkbaar met NumPy. Dus,
X[:, 0]haalt alle elementen op uit de kolom met index0. We behandelen het slicen 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.
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
Basisbewerkingen: Lineaire Algebra
Veeg om het menu te tonen
Lineaire Algebraïsche 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 resulteert in een matrix van 3x4.
Matrixinversie
De inverse van een matrix kan worden verkregen met de functie tf.linalg.inv(). Daarnaast wordt een fundamentele eigenschap van de inverse matrix gecontroleerd.
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 zou een identiteitsmatrix moeten opleveren, die enen op de hoofddiagonaal en nullen elders bevat. Daarnaast biedt de tf.linalg-module een breed scala aan lineaire algebra-functies. Voor meer details of geavanceerdere bewerkingen kunt u 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 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. Maar bij het instellen van axes=0 wordt een gebroadcast matrix langs as 0 verkregen:
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 dotproduct berekent over axes=1, wordt in feite matrixvermenigvuldiging uitgevoerd.
Swipe to start coding
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
Slicen in TensorFlow werkt vergelijkbaar met NumPy. Dus,
X[:, 0]haalt alle elementen op uit de kolom met index0. We behandelen het slicen later in de cursus.
Oplossing
Bedankt voor je feedback!
single