Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Grunnleggende Operasjoner: Lineær Algebra | Tensores
Introduksjon til TensorFlow

bookGrunnleggende 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.
1234567891011121314
import 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)
copy
Note
Merk

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.

123456789101112131415
import 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)
copy
Note
Merk

Å 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().

123456789101112
import 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)
copy

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:

1234567891011121314
import 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)
copy
Note
Merk

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 matrise­multiplikasjon.

Oppgave

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:

  1. 2x + 3y - z = 1.
  2. 4x + y + 2z = 2.
  3. -x + 2y + 3z = 3.
Dot Product
  1. Representer ligningssystemet i matriseform (del det opp i matriser A og B).
  2. Bruk TensorFlow til å finne inversen av matrisen A.
  3. Multipliser inversen av matrisen A med matrisen B for å finne løsningsmatrisen X, som inneholder verdiene til x, y og z.

Merk

Slicing i TensorFlow fungerer på samme måte som i NumPy. Derfor vil X[:, 0] hente ut alle elementene fra kolonnen med indeks 0. Vi kommer tilbake til slicing senere i kurset.

Løsning

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 9
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

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?

close

Awesome!

Completion rate improved to 5.56

bookGrunnleggende 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.
1234567891011121314
import 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)
copy
Note
Merk

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.

123456789101112131415
import 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)
copy
Note
Merk

Å 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().

123456789101112
import 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)
copy

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:

1234567891011121314
import 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)
copy
Note
Merk

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 matrise­multiplikasjon.

Oppgave

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:

  1. 2x + 3y - z = 1.
  2. 4x + y + 2z = 2.
  3. -x + 2y + 3z = 3.
Dot Product
  1. Representer ligningssystemet i matriseform (del det opp i matriser A og B).
  2. Bruk TensorFlow til å finne inversen av matrisen A.
  3. Multipliser inversen av matrisen A med matrisen B for å finne løsningsmatrisen X, som inneholder verdiene til x, y og z.

Merk

Slicing i TensorFlow fungerer på samme måte som i NumPy. Derfor vil X[:, 0] hente ut alle elementene fra kolonnen med indeks 0. Vi kommer tilbake til slicing senere i kurset.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 9
single

single

some-alt