Grunnleggende Operasjoner: Lineær Algebra
Lineær algebra-operasjoner
TensorFlow tilbyr et sett med funksjoner dedikert til lineær algebra-operasjoner, noe som gjør matriseoperasjoner enkle.
Matrisemultiplikasjon
Her er en rask påminnelse om hvordan matrisemultiplikasjon fungerer.
Det finnes to likeverdige tilnærminger for matrisemultiplikasjon:
- Funksjonen
tf.matmul()
; - Bruk av
@
-operatoren.
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)
Multiplikasjon av matriser med størrelse 3x2 og 2x4 vil gi en matrise på 3x4.
Matriseinvers
Du kan finne inversen til en matrise ved å bruke funksjonen tf.linalg.inv()
. I tillegg skal vi verifisere en grunnleggende egenskap ved den inverse matrisen.
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)
Å multiplisere en matrise med dens inverse skal gi en identitetsmatrise, som har énere på hoveddiagonalen og nuller ellers. I tillegg tilbyr tf.linalg
-modulen et bredt utvalg av lineær algebra-funksjoner. For mer informasjon eller avanserte operasjoner, se gjerne offisiell dokumentasjon.
Transponering
Du kan oppnå en transponert matrise ved å bruke funksjonen 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)
Prikkprodukt
Du kan oppnå et prikkprodukt ved å bruke funksjonen tf.tensordot()
. Ved å angi et axes-argument kan du velge langs hvilke akser prikkproduktet skal beregnes. For eksempel, for to vektorer vil du ved å sette axes=1
få det klassiske prikkproduktet mellom vektorer. Men når du setter axes=0
, vil du få en kringkastet matrise langs 0-aksen:
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)
Hvis du tar to matriser med passende dimensjoner (NxM @ MxK
, der NxM
representerer dimensjonene til den første matrisen og MxK
den andre), og beregner prikkproduktet langs axes=1
, utfører det i hovedsak matrisemultiplikasjon.
Swipe to start coding
Bakgrunn
Et system av lineære ligninger kan representeres i matriseform ved hjelp av ligningen:
AX = B
Hvor:
A
er en matrise med koeffisienter;X
er en kolonnematrise med variabler;B
er en kolonnematrise som representerer verdiene på høyre side av ligningene.
Løsningen på dette systemet kan finnes ved hjelp av formelen:
X = A^-1 B
Hvor A^-1
er den inverse av matrisen A
.
Mål
Gitt et system av lineære ligninger, bruk TensorFlow til å løse det. Du får følgende system av lineære ligninger:
2x + 3y - z = 1
.4x + y + 2z = 2
.-x + 2y + 3z = 3
.

- Representer ligningssystemet i matriseform (del det opp i matriser
A
ogB
). - Bruk TensorFlow til å finne inversen av matrisen
A
. - Multipliser inversen av matrisen
A
med matrisenB
for å finne løsningsmatrisenX
, som inneholder verdiene tilx
,y
ogz
.
Merk
Slicing i TensorFlow fungerer på samme måte som i NumPy. Derfor vil
X[:, 0]
hente ut alle elementene fra kolonnen med indeks0
. Vi kommer tilbake til slicing senere i kurset.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Grunnleggende Operasjoner: Lineær Algebra
Sveip for å vise menyen
Lineær algebra-operasjoner
TensorFlow tilbyr et sett med funksjoner dedikert til lineær algebra-operasjoner, noe som gjør matriseoperasjoner enkle.
Matrisemultiplikasjon
Her er en rask påminnelse om hvordan matrisemultiplikasjon fungerer.
Det finnes to likeverdige tilnærminger for matrisemultiplikasjon:
- Funksjonen
tf.matmul()
; - Bruk av
@
-operatoren.
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)
Multiplikasjon av matriser med størrelse 3x2 og 2x4 vil gi en matrise på 3x4.
Matriseinvers
Du kan finne inversen til en matrise ved å bruke funksjonen tf.linalg.inv()
. I tillegg skal vi verifisere en grunnleggende egenskap ved den inverse matrisen.
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)
Å multiplisere en matrise med dens inverse skal gi en identitetsmatrise, som har énere på hoveddiagonalen og nuller ellers. I tillegg tilbyr tf.linalg
-modulen et bredt utvalg av lineær algebra-funksjoner. For mer informasjon eller avanserte operasjoner, se gjerne offisiell dokumentasjon.
Transponering
Du kan oppnå en transponert matrise ved å bruke funksjonen 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)
Prikkprodukt
Du kan oppnå et prikkprodukt ved å bruke funksjonen tf.tensordot()
. Ved å angi et axes-argument kan du velge langs hvilke akser prikkproduktet skal beregnes. For eksempel, for to vektorer vil du ved å sette axes=1
få det klassiske prikkproduktet mellom vektorer. Men når du setter axes=0
, vil du få en kringkastet matrise langs 0-aksen:
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)
Hvis du tar to matriser med passende dimensjoner (NxM @ MxK
, der NxM
representerer dimensjonene til den første matrisen og MxK
den andre), og beregner prikkproduktet langs axes=1
, utfører det i hovedsak matrisemultiplikasjon.
Swipe to start coding
Bakgrunn
Et system av lineære ligninger kan representeres i matriseform ved hjelp av ligningen:
AX = B
Hvor:
A
er en matrise med koeffisienter;X
er en kolonnematrise med variabler;B
er en kolonnematrise som representerer verdiene på høyre side av ligningene.
Løsningen på dette systemet kan finnes ved hjelp av formelen:
X = A^-1 B
Hvor A^-1
er den inverse av matrisen A
.
Mål
Gitt et system av lineære ligninger, bruk TensorFlow til å løse det. Du får følgende system av lineære ligninger:
2x + 3y - z = 1
.4x + y + 2z = 2
.-x + 2y + 3z = 3
.

- Representer ligningssystemet i matriseform (del det opp i matriser
A
ogB
). - Bruk TensorFlow til å finne inversen av matrisen
A
. - Multipliser inversen av matrisen
A
med matrisenB
for å finne løsningsmatrisenX
, som inneholder verdiene tilx
,y
ogz
.
Merk
Slicing i TensorFlow fungerer på samme måte som i NumPy. Derfor vil
X[:, 0]
hente ut alle elementene fra kolonnen med indeks0
. Vi kommer tilbake til slicing senere i kurset.
Løsning
Takk for tilbakemeldingene dine!
single