Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Reduktionsoperationer | Tensorer
Introduktion til Tensorflow

bookReduktionsoperationer

Reduktionsoperationer

Inden for tensoroperationer er der mange opgaver, hvor det er nødvendigt at reducere dimensionerne af dataene, enten ved at opsummere dem over én eller flere akser. For eksempel, hvis vi har en 2D-tensor (en matrix), kan en reduktionsoperation beregne en værdi for hver række eller hver kolonne, hvilket resulterer i en 1D-tensor (en vektor). TensorFlow tilbyder en række operationer til dette formål, og i dette kapitel gennemgår vi de mest anvendte reduktionsoperationer.

Sum, Gennemsnit, Maksimum og Minimum

TensorFlow tilbyder følgende metoder til disse beregninger:

  • tf.reduce_sum(): beregner summen af alle elementer i tensoren eller langs en specifik akse;
  • tf.reduce_mean(): beregner gennemsnittet af tensorens elementer;
  • tf.reduce_max(): bestemmer den største værdi i tensoren;
  • tf.reduce_min(): finder den mindste værdi i tensoren.
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
Bemærk

Metoden .numpy() blev brugt til at konvertere tensorerne til NumPy-arrays, hvilket giver en tydeligere visuel præsentation af tallene ved visning.

Operationer langs specifikke akser

Tensores kan have flere dimensioner, og nogle gange ønsker vi at udføre reduktioner langs en specifik akse. Parameteren axis gør det muligt at angive, hvilken akse eller hvilke akser vi vil reducere langs.

  • axis=0: udfør operationen langs rækkerne (resulterer i en kolonnevektor);
  • axis=1: udfør operationen langs kolonnerne (resulterer i en rækkevektor);
  • Det er muligt at reducere langs flere akser samtidigt ved at angive en liste til parameteren axis;
  • Når tensorens rang reduceres, kan du bruge keepdims=True for at bevare den reducerede dimension som 1.

For en 2D-tensor (matrix):

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
Bemærk

Når du udfører en reduktionsoperation langs en bestemt akse, eliminerer du i det væsentlige denne akse fra tensoren og samler alle tensorerne inden for denne akse elementvist. Den samme effekt gælder for et vilkårligt antal dimensioner.

Sådan ser det ud for en 3D-tensor:

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
Bemærk

Mange andre reduktionsoperationer findes i TensorFlow, men de fungerer efter de samme principper.

Opgave

Swipe to start coding

Baggrund

Du er dataforsker hos et vejrundersøgelsesbureau. Du har fået udleveret en tensor, der indeholder vejrmålinger fra forskellige byer over flere dage. Tensoren har følgende struktur:

  • Dimension 1: repræsenterer forskellige byer;
  • Dimension 2: repræsenterer forskellige dage.
  • Hver post i tensoren er et tuple af (temperature, humidity).

Formål

  1. Beregn gennemsnitstemperaturen for hver by over alle dage.
  2. Beregn maksimal luftfugtighed på tværs af alle byer for hver dag.

Bemærk

I denne tensor repræsenterer det første tal i hvert tuple temperaturen (i Celsius), og det andet tal repræsenterer luftfugtigheden (i procent) for den pågældende dag og by.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 12
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

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

bookReduktionsoperationer

Stryg for at vise menuen

Reduktionsoperationer

Inden for tensoroperationer er der mange opgaver, hvor det er nødvendigt at reducere dimensionerne af dataene, enten ved at opsummere dem over én eller flere akser. For eksempel, hvis vi har en 2D-tensor (en matrix), kan en reduktionsoperation beregne en værdi for hver række eller hver kolonne, hvilket resulterer i en 1D-tensor (en vektor). TensorFlow tilbyder en række operationer til dette formål, og i dette kapitel gennemgår vi de mest anvendte reduktionsoperationer.

Sum, Gennemsnit, Maksimum og Minimum

TensorFlow tilbyder følgende metoder til disse beregninger:

  • tf.reduce_sum(): beregner summen af alle elementer i tensoren eller langs en specifik akse;
  • tf.reduce_mean(): beregner gennemsnittet af tensorens elementer;
  • tf.reduce_max(): bestemmer den største værdi i tensoren;
  • tf.reduce_min(): finder den mindste værdi i tensoren.
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
Bemærk

Metoden .numpy() blev brugt til at konvertere tensorerne til NumPy-arrays, hvilket giver en tydeligere visuel præsentation af tallene ved visning.

Operationer langs specifikke akser

Tensores kan have flere dimensioner, og nogle gange ønsker vi at udføre reduktioner langs en specifik akse. Parameteren axis gør det muligt at angive, hvilken akse eller hvilke akser vi vil reducere langs.

  • axis=0: udfør operationen langs rækkerne (resulterer i en kolonnevektor);
  • axis=1: udfør operationen langs kolonnerne (resulterer i en rækkevektor);
  • Det er muligt at reducere langs flere akser samtidigt ved at angive en liste til parameteren axis;
  • Når tensorens rang reduceres, kan du bruge keepdims=True for at bevare den reducerede dimension som 1.

For en 2D-tensor (matrix):

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
Bemærk

Når du udfører en reduktionsoperation langs en bestemt akse, eliminerer du i det væsentlige denne akse fra tensoren og samler alle tensorerne inden for denne akse elementvist. Den samme effekt gælder for et vilkårligt antal dimensioner.

Sådan ser det ud for en 3D-tensor:

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
Bemærk

Mange andre reduktionsoperationer findes i TensorFlow, men de fungerer efter de samme principper.

Opgave

Swipe to start coding

Baggrund

Du er dataforsker hos et vejrundersøgelsesbureau. Du har fået udleveret en tensor, der indeholder vejrmålinger fra forskellige byer over flere dage. Tensoren har følgende struktur:

  • Dimension 1: repræsenterer forskellige byer;
  • Dimension 2: repræsenterer forskellige dage.
  • Hver post i tensoren er et tuple af (temperature, humidity).

Formål

  1. Beregn gennemsnitstemperaturen for hver by over alle dage.
  2. Beregn maksimal luftfugtighed på tværs af alle byer for hver dag.

Bemærk

I denne tensor repræsenterer det første tal i hvert tuple temperaturen (i Celsius), og det andet tal repræsenterer luftfugtigheden (i procent) for den pågældende dag og by.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 12
single

single

some-alt