Perusoperaatiot: Lineaarialgebra
Lineaarialgebran operaatiot
TensorFlow tarjoaa joukon funktioita, jotka on omistettu lineaarialgebran operaatioille, tehden matriisioperaatioista suoraviivaisia.
Matriisikertolasku
Tässä lyhyt muistutus siitä, miten matriisikertolasku toimii.
Matriisikertolaskuun on kaksi vastaavaa lähestymistapaa:
tf.matmul()
-funktio;@
-operaattorin käyttö.
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)
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. Lisäksi tarkastellaan käänteismatriisin perustavanlaatuista ominaisuutta.
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)
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 tai edistyneempiä operaatioita varten kannattaa tutustua sen viralliseen dokumentaatioon.
Transponointi
Transponoidun matriisin saa käyttämällä funktiota 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)
Pistetulo
Pistetulo voidaan laskea tf.tensordot()
-funktiolla. Määrittämällä axes-parametrin voidaan valita, minkä akselien mukaan pistetulo lasketaan. Esimerkiksi kahdelle vektorille asettamalla axes=1
saadaan klassinen vektorien pistetulo. Kun taas asettamalla axes=0
saadaan laajennettu matriisi akselin 0 mukaan:
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)
Jos otat kaksi matriisia, joilla on sopivat mitat (NxM @ MxK
, missä NxM
edustaa ensimmäisen matriisin mittoja ja MxK
toisen), ja lasket pistetulon pitkin axes=1
, suoritat käytännössä matriisikertolaskun.
Swipe to start coding
Taustatiedot
Lineaaristen yhtälöiden järjestelmä voidaan esittää matriisimuodossa yhtälöllä:
AX = B
Missä:
A
on kertoimien matriisi;X
on muuttujien sarakematriisi;B
on sarakematriisi, 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
Annettuna lineaaristen yhtälöiden järjestelmä, käytä TensorFlow'ta ratkaistaksesi se. Sinulle on annettu seuraava lineaaristen yhtälöiden järjestelmä:
2x + 3y - z = 1
.4x + y + 2z = 2
.-x + 2y + 3z = 3
.

- Esitä yhtälöryhmä matriisimuodossa (erottele matriisit
A
jaB
). - Käytä TensorFlow'ta ja etsi matriisin
A
käänteismatriisi. - Kerro matriisin
A
käänteismatriisi matriisillaB
saadaksesi ratkaisumatriisiX
, joka sisältää muuttujienx
,y
jaz
arvot.
Huom
Leikkaaminen TensorFlow'ssa toimii samalla tavalla kuin NumPyssa. Siten
X[:, 0]
hakee kaikki alkiot sarakkeesta indeksillä0
. Palaamme leikkaamiseen myöhemmin kurssilla.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 5.56
Perusoperaatiot: Lineaarialgebra
Pyyhkäise näyttääksesi valikon
Lineaarialgebran operaatiot
TensorFlow tarjoaa joukon funktioita, jotka on omistettu lineaarialgebran operaatioille, tehden matriisioperaatioista suoraviivaisia.
Matriisikertolasku
Tässä lyhyt muistutus siitä, miten matriisikertolasku toimii.
Matriisikertolaskuun on kaksi vastaavaa lähestymistapaa:
tf.matmul()
-funktio;@
-operaattorin käyttö.
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)
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. Lisäksi tarkastellaan käänteismatriisin perustavanlaatuista ominaisuutta.
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)
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 tai edistyneempiä operaatioita varten kannattaa tutustua sen viralliseen dokumentaatioon.
Transponointi
Transponoidun matriisin saa käyttämällä funktiota 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)
Pistetulo
Pistetulo voidaan laskea tf.tensordot()
-funktiolla. Määrittämällä axes-parametrin voidaan valita, minkä akselien mukaan pistetulo lasketaan. Esimerkiksi kahdelle vektorille asettamalla axes=1
saadaan klassinen vektorien pistetulo. Kun taas asettamalla axes=0
saadaan laajennettu matriisi akselin 0 mukaan:
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)
Jos otat kaksi matriisia, joilla on sopivat mitat (NxM @ MxK
, missä NxM
edustaa ensimmäisen matriisin mittoja ja MxK
toisen), ja lasket pistetulon pitkin axes=1
, suoritat käytännössä matriisikertolaskun.
Swipe to start coding
Taustatiedot
Lineaaristen yhtälöiden järjestelmä voidaan esittää matriisimuodossa yhtälöllä:
AX = B
Missä:
A
on kertoimien matriisi;X
on muuttujien sarakematriisi;B
on sarakematriisi, 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
Annettuna lineaaristen yhtälöiden järjestelmä, käytä TensorFlow'ta ratkaistaksesi se. Sinulle on annettu seuraava lineaaristen yhtälöiden järjestelmä:
2x + 3y - z = 1
.4x + y + 2z = 2
.-x + 2y + 3z = 3
.

- Esitä yhtälöryhmä matriisimuodossa (erottele matriisit
A
jaB
). - Käytä TensorFlow'ta ja etsi matriisin
A
käänteismatriisi. - Kerro matriisin
A
käänteismatriisi matriisillaB
saadaksesi ratkaisumatriisiX
, joka sisältää muuttujienx
,y
jaz
arvot.
Huom
Leikkaaminen TensorFlow'ssa toimii samalla tavalla kuin NumPyssa. Siten
X[:, 0]
hakee kaikki alkiot sarakkeesta indeksillä0
. Palaamme leikkaamiseen myöhemmin kurssilla.
Ratkaisu
Kiitos palautteestasi!
single