Reduktiotoiminnot
Reduktio-operaatiot
Tensor-operaatioiden maailmassa on lukuisia tehtäviä, joissa täytyy vähentää datan ulottuvuuksia joko yhteenvetämällä sitä yhdellä tai useammalla akselilla. Esimerkiksi, jos käytössä on 2D-tensori (matriisi), reduktio-operaatio voi laskea arvon jokaiselle riville tai sarakkeelle, jolloin tuloksena on 1D-tensori (vektori). TensorFlow tarjoaa joukon operaatioita tämän toteuttamiseen, ja tässä luvussa tarkastellaan yleisimmin käytettyjä reduktio-operaatioita.
Summa, keskiarvo, maksimi ja minimi
TensorFlow tarjoaa seuraavat menetelmät näihin laskutoimituksiin:
tf.reduce_sum()
: laskee kaikkien tensorin alkioiden summan tai tietyn akselin suhteen;tf.reduce_mean()
: laskee tensorin alkioiden keskiarvon;tf.reduce_max()
: määrittää tensorin suurimman arvon;tf.reduce_min()
: etsii tensorin pienimmän arvon.
12345678910111213141516171819import tensorflow as tf tensor = tf.constant([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]) # Calculate sum of all elements total_sum = tf.reduce_sum(tensor) print("Total Sum:", total_sum.numpy()) # Calculate mean of all elements mean_val = tf.reduce_mean(tensor) print("Mean Value:", mean_val.numpy()) # Determine the maximum value max_val = tf.reduce_max(tensor) print("Maximum Value:", max_val.numpy()) # Find the minimum value min_val = tf.reduce_min(tensor) print("Minimum Value:", min_val.numpy())
.numpy()
-metodia käytettiin tensorien muuntamiseen NumPy-taulukoiksi, mikä tarjoaa selkeämmän numeerisen esityksen näytettäessä lukuja.
Operaatioita tietyillä akseleilla
Tensoreilla voi olla useita ulottuvuuksia, ja joskus halutaan suorittaa reduktioita tietyllä akselilla. axis
-parametrilla voidaan määrittää, mitä akselia tai akseleita halutaan pienentää.
axis=0
: suorittaa operaation riveittäin (tuloksena sarakevektori);axis=1
: suorittaa operaation sarakkeittain (tuloksena rivivektori);- On mahdollista pienentää useita akseleita samanaikaisesti antamalla lista
axis
-parametrille; - Kun tensorin aste pienenee, voidaan käyttää
keepdims=True
säilyttämään pienennetty ulottuvuus arvolla 1.
2D-tensorille (matriisi):
1234567891011121314151617181920import tensorflow as tf tensor = tf.constant([[1., 2.], [3., 4.], [5., 6.]]) # Calculate the sum of each column col_sum = tf.reduce_sum(tensor, axis=0) print("Column-wise Sum:", col_sum.numpy()) # Calculate the maximum of each row col_max = tf.reduce_max(tensor, axis=1) print("Row-wise Max:", col_max.numpy()) # Calculate the mean of the whole tensor (reduce along both directions) # Equivalent to not specifying the axis at all total_mean = tf.reduce_mean(tensor, axis=(0, 1)) print("Total Mean:", total_mean.numpy()) # Calculate the mean of the whole tensor (keeping reduced dimensions) total_mean_dim = tf.reduce_mean(tensor, axis=(0, 1), keepdims=True) print("Total Mean (saving dimensions):", total_mean_dim.numpy())
Kun suoritat reduktio-operaation tietyn akselin suhteen, poistat käytännössä kyseisen akselin tensorista ja yhdistät kaikki kyseisen akselin tensorit alkioittain. Sama vaikutus säilyy riippumatta ulottuvuuksien määrästä.
Tältä se näyttää 3-ulotteisella tensorilla:
12345678910111213141516171819import tensorflow as tf tensor = tf.constant([ [[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]] ]) # Calculate the sum along axis 0 sum_0 = tf.reduce_sum(tensor, axis=0) print("Sum axis 0:\n", sum_0.numpy()) # Calculate the sum along axis 1 sum_1 = tf.reduce_sum(tensor, axis=1) print("Sum axis 1:\n", sum_1.numpy()) # Calculate the sum along axes 0 and 1 sum_0_1 = tf.reduce_sum(tensor, axis=(0, 1)) print("Sum axes 0 and 1:\n", sum_0_1.numpy())
TensorFlowissa on olemassa monia muita reduktio-operaatioita, mutta ne toimivat samoilla periaatteilla.
Swipe to start coding
Taustatiedot
Olet data-analyytikko sääntutkimuslaitoksessa. Sinulle on annettu tensori, joka sisältää säähavaintoja eri kaupungeista useiden päivien ajalta. Tensorilla on seuraava rakenne:
- Ulottuvuus 1: edustaa eri kaupunkeja;
- Ulottuvuus 2: edustaa eri päiviä.
- Jokainen tensorin alkio on
(temperature, humidity)
-tyyppinen tupla.
Tavoite
- Laske keskimääräinen lämpötila jokaiselle kaupungille kaikkien päivien ajalta.
- Laske suurin kosteuslukema kaikista kaupungeista jokaiselle päivälle.
Huom
Tässä tensorissa tuplan ensimmäinen luku edustaa kyseisen päivän ja kaupungin lämpötilaa (Celsius-asteina) ja toinen luku kosteutta (prosentteina).
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain what the axis parameter means in more detail?
How does keepdims=True affect the output shape?
Can you show more examples with higher-dimensional tensors?
Awesome!
Completion rate improved to 5.56
Reduktiotoiminnot
Pyyhkäise näyttääksesi valikon
Reduktio-operaatiot
Tensor-operaatioiden maailmassa on lukuisia tehtäviä, joissa täytyy vähentää datan ulottuvuuksia joko yhteenvetämällä sitä yhdellä tai useammalla akselilla. Esimerkiksi, jos käytössä on 2D-tensori (matriisi), reduktio-operaatio voi laskea arvon jokaiselle riville tai sarakkeelle, jolloin tuloksena on 1D-tensori (vektori). TensorFlow tarjoaa joukon operaatioita tämän toteuttamiseen, ja tässä luvussa tarkastellaan yleisimmin käytettyjä reduktio-operaatioita.
Summa, keskiarvo, maksimi ja minimi
TensorFlow tarjoaa seuraavat menetelmät näihin laskutoimituksiin:
tf.reduce_sum()
: laskee kaikkien tensorin alkioiden summan tai tietyn akselin suhteen;tf.reduce_mean()
: laskee tensorin alkioiden keskiarvon;tf.reduce_max()
: määrittää tensorin suurimman arvon;tf.reduce_min()
: etsii tensorin pienimmän arvon.
12345678910111213141516171819import tensorflow as tf tensor = tf.constant([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]) # Calculate sum of all elements total_sum = tf.reduce_sum(tensor) print("Total Sum:", total_sum.numpy()) # Calculate mean of all elements mean_val = tf.reduce_mean(tensor) print("Mean Value:", mean_val.numpy()) # Determine the maximum value max_val = tf.reduce_max(tensor) print("Maximum Value:", max_val.numpy()) # Find the minimum value min_val = tf.reduce_min(tensor) print("Minimum Value:", min_val.numpy())
.numpy()
-metodia käytettiin tensorien muuntamiseen NumPy-taulukoiksi, mikä tarjoaa selkeämmän numeerisen esityksen näytettäessä lukuja.
Operaatioita tietyillä akseleilla
Tensoreilla voi olla useita ulottuvuuksia, ja joskus halutaan suorittaa reduktioita tietyllä akselilla. axis
-parametrilla voidaan määrittää, mitä akselia tai akseleita halutaan pienentää.
axis=0
: suorittaa operaation riveittäin (tuloksena sarakevektori);axis=1
: suorittaa operaation sarakkeittain (tuloksena rivivektori);- On mahdollista pienentää useita akseleita samanaikaisesti antamalla lista
axis
-parametrille; - Kun tensorin aste pienenee, voidaan käyttää
keepdims=True
säilyttämään pienennetty ulottuvuus arvolla 1.
2D-tensorille (matriisi):
1234567891011121314151617181920import tensorflow as tf tensor = tf.constant([[1., 2.], [3., 4.], [5., 6.]]) # Calculate the sum of each column col_sum = tf.reduce_sum(tensor, axis=0) print("Column-wise Sum:", col_sum.numpy()) # Calculate the maximum of each row col_max = tf.reduce_max(tensor, axis=1) print("Row-wise Max:", col_max.numpy()) # Calculate the mean of the whole tensor (reduce along both directions) # Equivalent to not specifying the axis at all total_mean = tf.reduce_mean(tensor, axis=(0, 1)) print("Total Mean:", total_mean.numpy()) # Calculate the mean of the whole tensor (keeping reduced dimensions) total_mean_dim = tf.reduce_mean(tensor, axis=(0, 1), keepdims=True) print("Total Mean (saving dimensions):", total_mean_dim.numpy())
Kun suoritat reduktio-operaation tietyn akselin suhteen, poistat käytännössä kyseisen akselin tensorista ja yhdistät kaikki kyseisen akselin tensorit alkioittain. Sama vaikutus säilyy riippumatta ulottuvuuksien määrästä.
Tältä se näyttää 3-ulotteisella tensorilla:
12345678910111213141516171819import tensorflow as tf tensor = tf.constant([ [[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]] ]) # Calculate the sum along axis 0 sum_0 = tf.reduce_sum(tensor, axis=0) print("Sum axis 0:\n", sum_0.numpy()) # Calculate the sum along axis 1 sum_1 = tf.reduce_sum(tensor, axis=1) print("Sum axis 1:\n", sum_1.numpy()) # Calculate the sum along axes 0 and 1 sum_0_1 = tf.reduce_sum(tensor, axis=(0, 1)) print("Sum axes 0 and 1:\n", sum_0_1.numpy())
TensorFlowissa on olemassa monia muita reduktio-operaatioita, mutta ne toimivat samoilla periaatteilla.
Swipe to start coding
Taustatiedot
Olet data-analyytikko sääntutkimuslaitoksessa. Sinulle on annettu tensori, joka sisältää säähavaintoja eri kaupungeista useiden päivien ajalta. Tensorilla on seuraava rakenne:
- Ulottuvuus 1: edustaa eri kaupunkeja;
- Ulottuvuus 2: edustaa eri päiviä.
- Jokainen tensorin alkio on
(temperature, humidity)
-tyyppinen tupla.
Tavoite
- Laske keskimääräinen lämpötila jokaiselle kaupungille kaikkien päivien ajalta.
- Laske suurin kosteuslukema kaikista kaupungeista jokaiselle päivälle.
Huom
Tässä tensorissa tuplan ensimmäinen luku edustaa kyseisen päivän ja kaupungin lämpötilaa (Celsius-asteina) ja toinen luku kosteutta (prosentteina).
Ratkaisu
Kiitos palautteestasi!
single