Grundläggande Operationer: Linjär Algebra
Linjära algebraoperationer
TensorFlow erbjuder en uppsättning funktioner dedikerade till linjär algebra, vilket gör matrismodellering enkel.
Matrismultiplikation
Här är en snabb påminnelse om hur matrismultiplikation fungerar.
Det finns två likvärdiga metoder för matrismultiplikation:
- Funktionen
tf.matmul(); - Användning av
@-operatorn.
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)
Multiplicering av matriser med storlek 3x2 och 2x4 ger en matris av storlek 3x4.
Matrisinversion
Du kan erhålla inversen av en matris med funktionen tf.linalg.inv(). Låt oss dessutom verifiera en grundläggande egenskap hos inversa matriser.
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)
Multiplicera en matris med dess invers bör ge en identitetsmatris, som har ettor på huvuddiagonalen och nollor överallt annars. Dessutom erbjuder modulen tf.linalg ett brett utbud av linjär algebra-funktioner. För ytterligare information eller mer avancerade operationer, se dess officiella dokumentation.
Transponera
En transponerad matris kan erhållas med 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)
Punktprodukt
Du kan erhålla en punktprodukt med funktionen tf.tensordot(). Genom att ange ett axes-argument kan du välja längs vilka axlar punktprodukten ska beräknas. Till exempel, för två vektorer ger inställningen axes=1 den klassiska punktprodukten mellan vektorer. Men om du anger axes=0 får du en broadcastad matris längs axel 0:
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)
Om du tar två matriser med lämpliga dimensioner (NxM @ MxK, där NxM representerar dimensionerna för den första matrisen och MxK för den andra), och beräknar skalärprodukten längs axes=1, utförs i princip matrismultiplikation.
Swipe to start coding
Bakgrund
Ett system av linjära ekvationer kan representeras i matrisform med ekvationen:
AX = B
Där:
Aär en koefficientmatris;Xär en kolonnmatris med variabler;Bär en kolonnmatris som representerar värdena på höger sida av ekvationerna.
Lösningen till detta system kan hittas med formeln:
X = A^-1 B
Där A^-1 är inversen av matrisen A.
Syfte
Givet ett system av linjära ekvationer, använd TensorFlow för att lösa det. Du får följande system av linjära ekvationer:
2x + 3y - z = 1.4x + y + 2z = 2.-x + 2y + 3z = 3.
- Representera ekvationssystemet i matrisform (dela upp det i matriserna
AochB). - Använd TensorFlow för att hitta inversen av matrisen
A. - Multiplicera inversen av matrisen
Amed matrisenBför att hitta lösningsmatrisenX, som innehåller värdena förx,yochz.
Observera
Slicing i TensorFlow fungerar på liknande sätt som i NumPy. Därför hämtar
X[:, 0]alla element från kolumnen med index0. Vi kommer att gå igenom slicing senare i kursen.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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äggande Operationer: Linjär Algebra
Svep för att visa menyn
Linjära algebraoperationer
TensorFlow erbjuder en uppsättning funktioner dedikerade till linjär algebra, vilket gör matrismodellering enkel.
Matrismultiplikation
Här är en snabb påminnelse om hur matrismultiplikation fungerar.
Det finns två likvärdiga metoder för matrismultiplikation:
- Funktionen
tf.matmul(); - Användning av
@-operatorn.
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)
Multiplicering av matriser med storlek 3x2 och 2x4 ger en matris av storlek 3x4.
Matrisinversion
Du kan erhålla inversen av en matris med funktionen tf.linalg.inv(). Låt oss dessutom verifiera en grundläggande egenskap hos inversa matriser.
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)
Multiplicera en matris med dess invers bör ge en identitetsmatris, som har ettor på huvuddiagonalen och nollor överallt annars. Dessutom erbjuder modulen tf.linalg ett brett utbud av linjär algebra-funktioner. För ytterligare information eller mer avancerade operationer, se dess officiella dokumentation.
Transponera
En transponerad matris kan erhållas med 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)
Punktprodukt
Du kan erhålla en punktprodukt med funktionen tf.tensordot(). Genom att ange ett axes-argument kan du välja längs vilka axlar punktprodukten ska beräknas. Till exempel, för två vektorer ger inställningen axes=1 den klassiska punktprodukten mellan vektorer. Men om du anger axes=0 får du en broadcastad matris längs axel 0:
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)
Om du tar två matriser med lämpliga dimensioner (NxM @ MxK, där NxM representerar dimensionerna för den första matrisen och MxK för den andra), och beräknar skalärprodukten längs axes=1, utförs i princip matrismultiplikation.
Swipe to start coding
Bakgrund
Ett system av linjära ekvationer kan representeras i matrisform med ekvationen:
AX = B
Där:
Aär en koefficientmatris;Xär en kolonnmatris med variabler;Bär en kolonnmatris som representerar värdena på höger sida av ekvationerna.
Lösningen till detta system kan hittas med formeln:
X = A^-1 B
Där A^-1 är inversen av matrisen A.
Syfte
Givet ett system av linjära ekvationer, använd TensorFlow för att lösa det. Du får följande system av linjära ekvationer:
2x + 3y - z = 1.4x + y + 2z = 2.-x + 2y + 3z = 3.
- Representera ekvationssystemet i matrisform (dela upp det i matriserna
AochB). - Använd TensorFlow för att hitta inversen av matrisen
A. - Multiplicera inversen av matrisen
Amed matrisenBför att hitta lösningsmatrisenX, som innehåller värdena förx,yochz.
Observera
Slicing i TensorFlow fungerar på liknande sätt som i NumPy. Därför hämtar
X[:, 0]alla element från kolumnen med index0. Vi kommer att gå igenom slicing senare i kursen.
Lösning
Tack för dina kommentarer!
single