Reductieoperaties
Reductie-operaties
Binnen tensorbewerkingen zijn er talloze taken waarbij het noodzakelijk is om de dimensies van gegevens 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 tensorelementen;tf.reduce_max(): bepaalt de maximale waarde in de tensor;tf.reduce_min(): vindt de minimale waarde in de tensor.
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())
De methode .numpy() werd gebruikt om de tensors om te zetten naar NumPy-arrays, wat zorgt voor een duidelijkere visuele weergave van de getallen bij het tonen.
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 gelijktijdig over meerdere assen te reduceren door een lijst aan de parameter
axiste geven; - Wanneer de rang van de tensor wordt gereduceerd, kun je
keepdims=Truegebruiken om de gereduceerde dimensie als 1 te behouden.
Voor een 2D-tensor (matrix):
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())
Wanneer u een reductie-operatie uitvoert langs een specifieke as, verwijdert u die as uit de tensor en voegt u alle tensors binnen die as elementgewijs samen. Dit effect blijft hetzelfde, ongeacht het aantal dimensies.
Zo ziet het eruit voor een 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())
Veel andere reductie-operaties bestaan in TensorFlow, maar ze werken volgens dezelfde principes.
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
- Bepaal de gemiddelde temperatuur voor elke stad over alle dagen.
- 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
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain what the axis parameter means in more detail?
How do I choose which axis to reduce along for my data?
What happens if I use keepdims=True in these operations?
Awesome!
Completion rate improved to 6.25
Reductieoperaties
Veeg om het menu te tonen
Reductie-operaties
Binnen tensorbewerkingen zijn er talloze taken waarbij het noodzakelijk is om de dimensies van gegevens 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 tensorelementen;tf.reduce_max(): bepaalt de maximale waarde in de tensor;tf.reduce_min(): vindt de minimale waarde in de tensor.
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())
De methode .numpy() werd gebruikt om de tensors om te zetten naar NumPy-arrays, wat zorgt voor een duidelijkere visuele weergave van de getallen bij het tonen.
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 gelijktijdig over meerdere assen te reduceren door een lijst aan de parameter
axiste geven; - Wanneer de rang van de tensor wordt gereduceerd, kun je
keepdims=Truegebruiken om de gereduceerde dimensie als 1 te behouden.
Voor een 2D-tensor (matrix):
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())
Wanneer u een reductie-operatie uitvoert langs een specifieke as, verwijdert u die as uit de tensor en voegt u alle tensors binnen die as elementgewijs samen. Dit effect blijft hetzelfde, ongeacht het aantal dimensies.
Zo ziet het eruit voor een 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())
Veel andere reductie-operaties bestaan in TensorFlow, maar ze werken volgens dezelfde principes.
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
- Bepaal de gemiddelde temperatuur voor elke stad over alle dagen.
- 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
Bedankt voor je feedback!
single