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

bookReduktiotoiminnot

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.
12345678910111213141516171819
import 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())
copy
Note
Huomio

.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):

1234567891011121314151617181920
import 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())
copy
Note
Huomio

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:

12345678910111213141516171819
import 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())
copy
Note
Huomio

TensorFlowissa on olemassa monia muita reduktio-operaatioita, mutta ne toimivat samoilla periaatteilla.

Tehtävä

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

  1. Laske keskimääräinen lämpötila jokaiselle kaupungille kaikkien päivien ajalta.
  2. 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

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 12
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 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?

close

Awesome!

Completion rate improved to 5.56

bookReduktiotoiminnot

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.
12345678910111213141516171819
import 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())
copy
Note
Huomio

.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):

1234567891011121314151617181920
import 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())
copy
Note
Huomio

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:

12345678910111213141516171819
import 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())
copy
Note
Huomio

TensorFlowissa on olemassa monia muita reduktio-operaatioita, mutta ne toimivat samoilla periaatteilla.

Tehtävä

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

  1. Laske keskimääräinen lämpötila jokaiselle kaupungille kaikkien päivien ajalta.
  2. 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

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 12
single

single

some-alt