Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Perusoperaatiot: Lineaarialgebra | Tensorit
Johdanto TensorFlow'hun

bookPerusoperaatiot: Lineaarialgebra

Lineaarialgebran operaatiot

TensorFlow tarjoaa joukon funktioita, jotka on omistettu lineaarialgebran operaatioille, mikä tekee matriisioperaatioista suoraviivaisia.

Matriisitulo

Tässä lyhyt muistutus siitä, miten matriisitulo toimii.

Matriisitulolle on kaksi vastaavaa lähestymistapaa:

  • tf.matmul()-funktio;
  • @-operaattorin käyttö.
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
Huomautus

Kertomalla matriisit, joiden koko on 3x2 ja 2x4, saadaan matriisi, jonka koko on 3x4.

Matriisin käänteismatriisi

Matriisin käänteismatriisin voi laskea tf.linalg.inv() -funktiolla. Tarkastellaan lisäksi käänteismatriisin perustavanlaatuista ominaisuutta.

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
Huomio

Kertomalla matriisi sen käänteismatriisilla tuloksena on yksikkömatriisi, jossa päädiagonaalilla on ykkösiä ja muualla nollia. Lisäksi tf.linalg-moduuli tarjoaa laajan valikoiman lineaarialgebran funktioita. Lisätietoja ja edistyneempiä operaatioita varten kannattaa tutustua sen viralliseen dokumentaatioon.

Transponointi

Transponoidun matriisin saa käyttämällä funktiota 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

Pistetulo

Pistetulon voi laskea käyttämällä tf.tensordot()-funktiota. Määrittämällä axes-parametrin voit valita, minkä akselien mukaan pistetulo lasketaan. Esimerkiksi kahden vektorin tapauksessa asettamalla axes=1 saat klassisen vektorien pistetulon. Kun taas asettamalla axes=0 saat laajennetun matriisin 0-akselin mukaan:

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
Huomautus

Kun otetaan kaksi matriisia, joilla on sopivat mitat (NxM @ MxK, missä NxM kuvaa ensimmäisen matriisin mittoja ja MxK toisen), ja lasketaan pistetulo pitkin axes=1, suoritetaan käytännössä matriisikertolasku.

Tehtävä

Swipe to start coding

Taustatiedot

Lineaaristen yhtälöiden järjestelmä voidaan esittää matriisimuodossa seuraavasti:

AX = B

Missä:

  • A on kertoimien matriisi;
  • X on muuttujien pylväsmatriisi;
  • B on pylväsmatriisi, joka edustaa yhtälöiden oikean puolen arvoja.

Tämän järjestelmän ratkaisu voidaan löytää kaavalla:

X = A^-1 B

Missä A^-1 on matriisin A käänteismatriisi.

Tavoite

Annetun lineaaristen yhtälöiden järjestelmän avulla ratkaise järjestelmä TensorFlow'n avulla. Sinulle on annettu seuraava yhtälöryhmä:

  1. 2x + 3y - z = 1.
  2. 4x + y + 2z = 2.
  3. -x + 2y + 3z = 3.
Dot Product
  1. Esitä yhtälöryhmä matriisimuodossa (erottele matriisit A ja B).
  2. Etsi TensorFlow'n avulla matriisin A käänteismatriisi.
  3. Kerro matriisin A käänteismatriisi matriisilla B saadaksesi ratkaisumatriisin X, joka sisältää muuttujien x, y ja z arvot.

Huom

Leikkaaminen (slicing) TensorFlow'ssa toimii samalla tavalla kuin NumPyssa. Siten X[:, 0] hakee kaikki alkiot sarakkeesta, jonka indeksi on 0. Palaamme leikkaamiseen myöhemmin kurssilla.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 9
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

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

bookPerusoperaatiot: Lineaarialgebra

Pyyhkäise näyttääksesi valikon

Lineaarialgebran operaatiot

TensorFlow tarjoaa joukon funktioita, jotka on omistettu lineaarialgebran operaatioille, mikä tekee matriisioperaatioista suoraviivaisia.

Matriisitulo

Tässä lyhyt muistutus siitä, miten matriisitulo toimii.

Matriisitulolle on kaksi vastaavaa lähestymistapaa:

  • tf.matmul()-funktio;
  • @-operaattorin käyttö.
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
Huomautus

Kertomalla matriisit, joiden koko on 3x2 ja 2x4, saadaan matriisi, jonka koko on 3x4.

Matriisin käänteismatriisi

Matriisin käänteismatriisin voi laskea tf.linalg.inv() -funktiolla. Tarkastellaan lisäksi käänteismatriisin perustavanlaatuista ominaisuutta.

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
Huomio

Kertomalla matriisi sen käänteismatriisilla tuloksena on yksikkömatriisi, jossa päädiagonaalilla on ykkösiä ja muualla nollia. Lisäksi tf.linalg-moduuli tarjoaa laajan valikoiman lineaarialgebran funktioita. Lisätietoja ja edistyneempiä operaatioita varten kannattaa tutustua sen viralliseen dokumentaatioon.

Transponointi

Transponoidun matriisin saa käyttämällä funktiota 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

Pistetulo

Pistetulon voi laskea käyttämällä tf.tensordot()-funktiota. Määrittämällä axes-parametrin voit valita, minkä akselien mukaan pistetulo lasketaan. Esimerkiksi kahden vektorin tapauksessa asettamalla axes=1 saat klassisen vektorien pistetulon. Kun taas asettamalla axes=0 saat laajennetun matriisin 0-akselin mukaan:

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
Huomautus

Kun otetaan kaksi matriisia, joilla on sopivat mitat (NxM @ MxK, missä NxM kuvaa ensimmäisen matriisin mittoja ja MxK toisen), ja lasketaan pistetulo pitkin axes=1, suoritetaan käytännössä matriisikertolasku.

Tehtävä

Swipe to start coding

Taustatiedot

Lineaaristen yhtälöiden järjestelmä voidaan esittää matriisimuodossa seuraavasti:

AX = B

Missä:

  • A on kertoimien matriisi;
  • X on muuttujien pylväsmatriisi;
  • B on pylväsmatriisi, joka edustaa yhtälöiden oikean puolen arvoja.

Tämän järjestelmän ratkaisu voidaan löytää kaavalla:

X = A^-1 B

Missä A^-1 on matriisin A käänteismatriisi.

Tavoite

Annetun lineaaristen yhtälöiden järjestelmän avulla ratkaise järjestelmä TensorFlow'n avulla. Sinulle on annettu seuraava yhtälöryhmä:

  1. 2x + 3y - z = 1.
  2. 4x + y + 2z = 2.
  3. -x + 2y + 3z = 3.
Dot Product
  1. Esitä yhtälöryhmä matriisimuodossa (erottele matriisit A ja B).
  2. Etsi TensorFlow'n avulla matriisin A käänteismatriisi.
  3. Kerro matriisin A käänteismatriisi matriisilla B saadaksesi ratkaisumatriisin X, joka sisältää muuttujien x, y ja z arvot.

Huom

Leikkaaminen (slicing) TensorFlow'ssa toimii samalla tavalla kuin NumPyssa. Siten X[:, 0] hakee kaikki alkiot sarakkeesta, jonka indeksi on 0. Palaamme leikkaamiseen myöhemmin kurssilla.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 9
single

single

some-alt