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 på alla andra positioner. 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)
Skalärprodukt
Du kan erhålla en skalärprodukt med funktionen tf.tensordot()
. Genom att ange ett axes-argument kan du välja längs vilka axlar produkten ska beräknas. Till exempel, för två vektorer med axes=1
får du den klassiska skalärprodukten mellan vektorer. Men om du anger axes=0
får du en broadcastad matris längs 0-axeln:
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
A
ochB
). - Använd TensorFlow för att hitta inversen av matrisen
A
. - Multiplicera inversen av matrisen
A
med matrisenB
för att hitta lösningsmatrisenX
, som innehåller värdena förx
,y
ochz
.
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
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 på alla andra positioner. 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)
Skalärprodukt
Du kan erhålla en skalärprodukt med funktionen tf.tensordot()
. Genom att ange ett axes-argument kan du välja längs vilka axlar produkten ska beräknas. Till exempel, för två vektorer med axes=1
får du den klassiska skalärprodukten mellan vektorer. Men om du anger axes=0
får du en broadcastad matris längs 0-axeln:
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
A
ochB
). - Använd TensorFlow för att hitta inversen av matrisen
A
. - Multiplicera inversen av matrisen
A
med matrisenB
för att hitta lösningsmatrisenX
, som innehåller värdena förx
,y
ochz
.
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