single
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.
Matriisien kertolaskuun on kaksi vastaavaa tapaa:
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. Tarkastellaan lisäksi 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)
Matriisin kertominen sen käänteismatriisilla tuottaa identiteettimatriisin, jossa päädiagonaalilla on ykkösiä ja muualla nollia. Lisäksi tf.linalg-moduuli tarjoaa laajan valikoiman lineaarialgebran funktioita. Lisätietoja ja edistyneempiä toimintoja varten kannattaa tutustua sen viralliseen dokumentaatioon.
Transponointi
Transponoidun matriisin voi saada käyttämällä tf.transpose() -funktiota.
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
Pistetulon voi laskea käyttämällä tf.tensordot()-funktiota. Määrittämällä axes-parametrin voit valita, minkä akselien yli pistetulo lasketaan. Esimerkiksi kahden vektorin tapauksessa asettamalla axes=1 saat klassisen vektorien pistetulon. Mutta kun asetat axes=0, saat laajennetun matriisin 0-akselin yli:
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)
Kun otat kaksi matriisia, joilla on sopivat dimensiot (NxM @ MxK, missä NxM kuvaa ensimmäisen matriisin ja MxK toisen matriisin dimensioita), ja lasket pistetulon pitkin axes=1, suoritetaan käytännössä matriisikertolasku.
Pyyhkäise aloittaaksesi koodauksen
Taustatiedot
Lineaaristen yhtälöiden järjestelmä voidaan esittää matriisimuodossa seuraavalla yhtälöllä:
AX = B
Missä:
Aon kertoimien matriisi;Xon muuttujien sarakematriisi;Bon sarakematriisi, joka kuvaa yhtälöiden oikean puolen arvot.
Tämän järjestelmän ratkaisu löytyy kaavalla:
X = A^-1 B
Missä A^-1 on matriisin A käänteismatriisi.
Tavoite
Annetun lineaaristen yhtälöiden järjestelmän avulla ratkaise se TensorFlow'n avulla. Sinulle annetaan seuraava lineaaristen yhtälöiden järjestelmä:
2x + 3y - z = 1.4x + y + 2z = 2.-x + 2y + 3z = 3.
- Esitä yhtälöiden järjestelmä matriisimuodossa (erottele matriisit
AjaB). - Käytä TensorFlow'ta ja etsi matriisin
Akäänteismatriisi. - Kerro matriisin
Akäänteismatriisi matriisillaBsaadaksesi ratkaisumatriisinX, joka sisältää muuttujienx,yjazarvot.
Huom
Leikkaaminen TensorFlow'ssa toimii samalla tavalla kuin NumPyssa. Näin ollen
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