Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Reductieoperaties | Tensoren
Introductie tot TensorFlow

bookReductieoperaties

Reductie-operaties

Binnen tensorbewerkingen zijn er talloze taken waarbij het noodzakelijk is om de dimensies van data te reduceren, bijvoorbeeld door deze samen te vatten over één of meerdere assen. Wanneer er bijvoorbeeld een 2D-tensor (een matrix) is, kan een reductie-operatie een waarde berekenen voor elke rij of kolom, wat resulteert in een 1D-tensor (een vector). TensorFlow biedt een reeks operaties om dit te realiseren. In dit hoofdstuk worden de meest gebruikte reductie-operaties besproken.

Som, Gemiddelde, Maximum en Minimum

TensorFlow biedt de volgende methoden voor deze berekeningen:

  • tf.reduce_sum(): berekent de som van alle elementen in de tensor of langs een specifieke as;
  • tf.reduce_mean(): berekent het gemiddelde van de elementen in de tensor;
  • tf.reduce_max(): bepaalt de maximale waarde in de tensor;
  • tf.reduce_min(): vindt de minimale waarde in de tensor.
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
Opmerking

De methode .numpy() werd gebruikt om de tensors om te zetten in NumPy-arrays, wat een duidelijkere visuele weergave van de getallen biedt bij het weergeven.

Operaties langs specifieke assen

Tensors kunnen meerdere dimensies hebben en soms willen we reducties uitvoeren langs een specifieke as. De parameter axis stelt ons in staat om aan te geven welke as of assen we willen reduceren.

  • axis=0: voer de operatie uit langs de rijen (resulterend in een kolomvector);
  • axis=1: voer de operatie uit langs de kolommen (resulterend in een rijvector);
  • Het is mogelijk om tegelijkertijd over meerdere assen te reduceren door een lijst aan de parameter axis te geven;
  • Wanneer de rang van de tensor wordt gereduceerd, kun je keepdims=True gebruiken om de gereduceerde dimensie als 1 te behouden.

Voor een 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
Opmerking

Wanneer een reductie-operatie wordt uitgevoerd langs een specifieke as, wordt die as feitelijk verwijderd uit de tensor, waarbij alle tensors binnen die as elementgewijs worden samengevoegd. Dit effect blijft hetzelfde, ongeacht het aantal dimensies.

Zo ziet het eruit voor een 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
Opmerking

Veel andere reductieoperaties bestaan in TensorFlow, maar ze werken volgens dezelfde principes.

Taak

Swipe to start coding

Achtergrond

Je bent een data scientist bij een weeronderzoeksbureau. Je hebt een tensor ontvangen met weersmetingen uit verschillende steden over meerdere dagen. De tensor heeft de volgende structuur:

  • Dimensie 1: vertegenwoordigt verschillende steden;
  • Dimensie 2: vertegenwoordigt verschillende dagen.
  • Elke invoer in de tensor is een tuple van (temperature, humidity).

Doelstelling

  1. Bepaal de gemiddelde temperatuur voor elke stad over alle dagen.
  2. Bepaal de maximale luchtvochtigheid over alle steden voor elke dag.

Opmerking

In deze tensor geeft het eerste getal in elke tuple de temperatuur (in Celsius) aan en het tweede getal de luchtvochtigheid (in procenten) voor die dag en stad.

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 12
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

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

bookReductieoperaties

Veeg om het menu te tonen

Reductie-operaties

Binnen tensorbewerkingen zijn er talloze taken waarbij het noodzakelijk is om de dimensies van data te reduceren, bijvoorbeeld door deze samen te vatten over één of meerdere assen. Wanneer er bijvoorbeeld een 2D-tensor (een matrix) is, kan een reductie-operatie een waarde berekenen voor elke rij of kolom, wat resulteert in een 1D-tensor (een vector). TensorFlow biedt een reeks operaties om dit te realiseren. In dit hoofdstuk worden de meest gebruikte reductie-operaties besproken.

Som, Gemiddelde, Maximum en Minimum

TensorFlow biedt de volgende methoden voor deze berekeningen:

  • tf.reduce_sum(): berekent de som van alle elementen in de tensor of langs een specifieke as;
  • tf.reduce_mean(): berekent het gemiddelde van de elementen in de tensor;
  • tf.reduce_max(): bepaalt de maximale waarde in de tensor;
  • tf.reduce_min(): vindt de minimale waarde in de tensor.
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
Opmerking

De methode .numpy() werd gebruikt om de tensors om te zetten in NumPy-arrays, wat een duidelijkere visuele weergave van de getallen biedt bij het weergeven.

Operaties langs specifieke assen

Tensors kunnen meerdere dimensies hebben en soms willen we reducties uitvoeren langs een specifieke as. De parameter axis stelt ons in staat om aan te geven welke as of assen we willen reduceren.

  • axis=0: voer de operatie uit langs de rijen (resulterend in een kolomvector);
  • axis=1: voer de operatie uit langs de kolommen (resulterend in een rijvector);
  • Het is mogelijk om tegelijkertijd over meerdere assen te reduceren door een lijst aan de parameter axis te geven;
  • Wanneer de rang van de tensor wordt gereduceerd, kun je keepdims=True gebruiken om de gereduceerde dimensie als 1 te behouden.

Voor een 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
Opmerking

Wanneer een reductie-operatie wordt uitgevoerd langs een specifieke as, wordt die as feitelijk verwijderd uit de tensor, waarbij alle tensors binnen die as elementgewijs worden samengevoegd. Dit effect blijft hetzelfde, ongeacht het aantal dimensies.

Zo ziet het eruit voor een 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
Opmerking

Veel andere reductieoperaties bestaan in TensorFlow, maar ze werken volgens dezelfde principes.

Taak

Swipe to start coding

Achtergrond

Je bent een data scientist bij een weeronderzoeksbureau. Je hebt een tensor ontvangen met weersmetingen uit verschillende steden over meerdere dagen. De tensor heeft de volgende structuur:

  • Dimensie 1: vertegenwoordigt verschillende steden;
  • Dimensie 2: vertegenwoordigt verschillende dagen.
  • Elke invoer in de tensor is een tuple van (temperature, humidity).

Doelstelling

  1. Bepaal de gemiddelde temperatuur voor elke stad over alle dagen.
  2. Bepaal de maximale luchtvochtigheid over alle steden voor elke dag.

Opmerking

In deze tensor geeft het eerste getal in elke tuple de temperatuur (in Celsius) aan en het tweede getal de luchtvochtigheid (in procenten) voor die dag en stad.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 12
single

single

some-alt