Reduksjonsoperasjoner
Reduksjonsoperasjoner
Innenfor tensoroperasjoner finnes det mange oppgaver hvor vi må redusere dimensjonene til dataene våre, enten ved å oppsummere dem over én eller flere akser. For eksempel, hvis vi har en 2D-tensor (en matrise), kan en reduksjonsoperasjon beregne en verdi for hver rad eller hver kolonne, noe som resulterer i en 1D-tensor (en vektor). TensorFlow tilbyr et sett med operasjoner for dette, og i dette kapittelet skal vi utforske de mest brukte reduksjonsoperasjonene.
Sum, Gjennomsnitt, Maksimum og Minimum
TensorFlow tilbyr følgende metoder for disse beregningene:
tf.reduce_sum()
: beregner summen av alle elementene i tensoren eller langs en spesifikk akse;tf.reduce_mean()
: kalkulerer gjennomsnittet av elementene i tensoren;tf.reduce_max()
: finner maksimumsverdien i tensoren;tf.reduce_min()
: finner minimumsverdien i tensoren.
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())
Metoden .numpy()
ble brukt for å konvertere tensorene til NumPy-arrays, noe som gir en tydeligere visuell fremstilling av tallene når de vises.
Operasjoner langs spesifikke akser
Tensores kan ha flere dimensjoner, og noen ganger ønsker vi å utføre reduksjoner langs en spesifikk akse. Parameteren axis
lar oss spesifisere hvilken akse eller hvilke akser vi ønsker å redusere.
axis=0
: utfører operasjonen langs radene (resulterer i en kolonnevektor);axis=1
: utfører operasjonen langs kolonnene (resulterer i en radvektor);- Det er mulig å redusere langs flere akser samtidig ved å gi en liste til parameteren
axis
; - Når tensorens rang reduseres, kan du bruke
keepdims=True
for å beholde den reduserte dimensjonen som 1.
For en 2D-tensor (matrise):
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())
Når du utfører en reduksjonsoperasjon langs en spesifikk akse, eliminerer du i praksis denne aksen fra tensoren, og aggregerer alle tensorene innenfor denne aksen elementvis. Den samme effekten gjelder uansett antall dimensjoner.
Slik ser det ut for en 3D-tensor:
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())
Mange andre reduksjonsoperasjoner finnes i TensorFlow, men de fungerer etter de samme prinsippene.
Swipe to start coding
Bakgrunn
Du er en dataforsker ved et værforskningsbyrå. Du har fått et tensor som inneholder værmålinger fra ulike byer over flere dager. Tensoren har følgende struktur:
- Dimensjon 1: representerer forskjellige byer;
- Dimensjon 2: representerer forskjellige dager.
- Hver oppføring i tensoren er et tuppel av
(temperature, humidity)
.
Mål
- Beregn gjennomsnittstemperaturen for hver by over alle dager.
- Beregn maksimal luftfuktighet på tvers av alle byer for hver dag.
Merk
I denne tensoren representerer det første tallet i hvert tuppel temperaturen (i Celsius), og det andre tallet representerer luftfuktigheten (i prosent) for den aktuelle dagen og byen.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Reduksjonsoperasjoner
Sveip for å vise menyen
Reduksjonsoperasjoner
Innenfor tensoroperasjoner finnes det mange oppgaver hvor vi må redusere dimensjonene til dataene våre, enten ved å oppsummere dem over én eller flere akser. For eksempel, hvis vi har en 2D-tensor (en matrise), kan en reduksjonsoperasjon beregne en verdi for hver rad eller hver kolonne, noe som resulterer i en 1D-tensor (en vektor). TensorFlow tilbyr et sett med operasjoner for dette, og i dette kapittelet skal vi utforske de mest brukte reduksjonsoperasjonene.
Sum, Gjennomsnitt, Maksimum og Minimum
TensorFlow tilbyr følgende metoder for disse beregningene:
tf.reduce_sum()
: beregner summen av alle elementene i tensoren eller langs en spesifikk akse;tf.reduce_mean()
: kalkulerer gjennomsnittet av elementene i tensoren;tf.reduce_max()
: finner maksimumsverdien i tensoren;tf.reduce_min()
: finner minimumsverdien i tensoren.
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())
Metoden .numpy()
ble brukt for å konvertere tensorene til NumPy-arrays, noe som gir en tydeligere visuell fremstilling av tallene når de vises.
Operasjoner langs spesifikke akser
Tensores kan ha flere dimensjoner, og noen ganger ønsker vi å utføre reduksjoner langs en spesifikk akse. Parameteren axis
lar oss spesifisere hvilken akse eller hvilke akser vi ønsker å redusere.
axis=0
: utfører operasjonen langs radene (resulterer i en kolonnevektor);axis=1
: utfører operasjonen langs kolonnene (resulterer i en radvektor);- Det er mulig å redusere langs flere akser samtidig ved å gi en liste til parameteren
axis
; - Når tensorens rang reduseres, kan du bruke
keepdims=True
for å beholde den reduserte dimensjonen som 1.
For en 2D-tensor (matrise):
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())
Når du utfører en reduksjonsoperasjon langs en spesifikk akse, eliminerer du i praksis denne aksen fra tensoren, og aggregerer alle tensorene innenfor denne aksen elementvis. Den samme effekten gjelder uansett antall dimensjoner.
Slik ser det ut for en 3D-tensor:
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())
Mange andre reduksjonsoperasjoner finnes i TensorFlow, men de fungerer etter de samme prinsippene.
Swipe to start coding
Bakgrunn
Du er en dataforsker ved et værforskningsbyrå. Du har fått et tensor som inneholder værmålinger fra ulike byer over flere dager. Tensoren har følgende struktur:
- Dimensjon 1: representerer forskjellige byer;
- Dimensjon 2: representerer forskjellige dager.
- Hver oppføring i tensoren er et tuppel av
(temperature, humidity)
.
Mål
- Beregn gjennomsnittstemperaturen for hver by over alle dager.
- Beregn maksimal luftfuktighet på tvers av alle byer for hver dag.
Merk
I denne tensoren representerer det første tallet i hvert tuppel temperaturen (i Celsius), og det andre tallet representerer luftfuktigheten (i prosent) for den aktuelle dagen og byen.
Løsning
Takk for tilbakemeldingene dine!
single