Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Reductie-Operaties | Tensor Operations and Execution
Introductie tot TensorFlow

Reductie-Operaties

Reductie-operaties

Binnen tensorbewerkingen zijn er talloze taken waarbij het nodig is om de dimensies te reduceren van onze data, bijvoorbeeld door deze samen te vatten over één of meerdere assen. Als we bijvoorbeeld een 2D-tensor (een matrix) hebben, 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 behandelen we de meest gebruikte reductie-operaties.

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 tensor-elementen;
  • 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())
Note
Opmerking

De methode .numpy() werd gebruikt om de tensors om te zetten naar NumPy-arrays, waardoor de getallen duidelijker worden weergegeven.

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

reduce_sum
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())
Note
Opmerking

Wanneer je een reductie-operatie uitvoert over een specifieke as, verwijder je die as uit de tensor en voeg je alle tensors binnen die as elementgewijs samen. Dit effect blijft hetzelfde voor elk aantal dimensies.

Zo ziet het eruit voor een 3D-tensor:

reduce_sum_3d
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())
Note
Opmerking

Veel andere reductie-operaties bestaan in TensorFlow, maar ze werken volgens dezelfde principes.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 4
single

single

Reductie-Operaties

Veeg om het menu te tonen

Reductie-operaties

Binnen tensorbewerkingen zijn er talloze taken waarbij het nodig is om de dimensies te reduceren van onze data, bijvoorbeeld door deze samen te vatten over één of meerdere assen. Als we bijvoorbeeld een 2D-tensor (een matrix) hebben, 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 behandelen we de meest gebruikte reductie-operaties.

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 tensor-elementen;
  • 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())
Note
Opmerking

De methode .numpy() werd gebruikt om de tensors om te zetten naar NumPy-arrays, waardoor de getallen duidelijker worden weergegeven.

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

reduce_sum
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())
Note
Opmerking

Wanneer je een reductie-operatie uitvoert over een specifieke as, verwijder je die as uit de tensor en voeg je alle tensors binnen die as elementgewijs samen. Dit effect blijft hetzelfde voor elk aantal dimensies.

Zo ziet het eruit voor een 3D-tensor:

reduce_sum_3d
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())
Note
Opmerking

Veel andere reductie-operaties bestaan in TensorFlow, maar ze werken volgens dezelfde principes.

Taak

Veeg om te beginnen met coderen

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. Bereken de gemiddelde temperatuur voor elke stad over alle dagen.
  2. Bereken de maximale luchtvochtigheid over alle steden voor elke dag.

Opmerking

In deze tensor staat het eerste getal in elke tuple voor de temperatuur (in Celsius) en het tweede getal voor 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 2. Hoofdstuk 4
single

single

Vraag AI

expand

Vraag AI

ChatGPT

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

some-alt