Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Reduktionsoperationen | Tensors
Einführung in TensorFlow

bookReduktionsoperationen

Reduktionsoperationen

Im Bereich der Tensoroperationen gibt es zahlreiche Aufgaben, bei denen die Dimensionen der Daten reduziert werden müssen, entweder durch Zusammenfassung über eine oder mehrere Achsen. Wenn beispielsweise ein 2D-Tensor (eine Matrix) vorliegt, kann eine Reduktionsoperation einen Wert für jede Zeile oder jede Spalte berechnen, was zu einem 1D-Tensor (einem Vektor) führt. TensorFlow stellt eine Reihe von Operationen zur Verfügung, um dies zu erreichen. In diesem Kapitel werden die am häufigsten verwendeten Reduktionsoperationen vorgestellt.

Summe, Mittelwert, Maximum und Minimum

TensorFlow bietet die folgenden Methoden für diese Berechnungen an:

  • tf.reduce_sum(): berechnet die Summe aller Elemente im Tensor oder entlang einer bestimmten Achse;
  • tf.reduce_mean(): berechnet den Mittelwert der Tensor-Elemente;
  • tf.reduce_max(): bestimmt den Maximalwert im Tensor;
  • tf.reduce_min(): ermittelt den Minimalwert im 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
Hinweis

Die Methode .numpy() wurde verwendet, um die Tensoren in NumPy-Arrays umzuwandeln, was eine klarere visuelle Darstellung der Zahlen bei der Anzeige ermöglicht.

Operationen entlang bestimmter Achsen

Tensoren können mehrere Dimensionen besitzen, und manchmal möchte man Reduktionen entlang einer bestimmten Achse durchführen. Der Parameter axis ermöglicht es, anzugeben, welche Achse oder Achsen reduziert werden sollen.

  • axis=0: Durchführung der Operation entlang der Zeilen (ergibt einen Spaltenvektor);
  • axis=1: Durchführung der Operation entlang der Spalten (ergibt einen Zeilenvektor);
  • Es ist möglich, gleichzeitig entlang mehrerer Achsen zu reduzieren, indem man dem Parameter axis eine Liste übergibt;
  • Wenn der Rang des Tensors reduziert wird, kann mit keepdims=True die reduzierte Dimension als 1 beibehalten werden.

Für einen 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
Hinweis

Wenn eine Reduktionsoperation entlang einer bestimmten Achse ausgeführt wird, wird diese Achse im Tensor eliminiert, wobei alle Tensoren innerhalb dieser Achse elementweise aggregiert werden. Dieser Effekt bleibt unabhängig von der Anzahl der Dimensionen erhalten.

So sieht es bei einem 3D-Tensor aus:

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
Hinweis

Viele weitere Reduktionsoperationen existieren in TensorFlow, sie basieren jedoch auf denselben Prinzipien.

Aufgabe

Swipe to start coding

Hintergrund

Sie sind Datenwissenschaftler bei einer Wetterforschungsagentur. Ihnen wurde ein Tensor mit Wetterdaten aus verschiedenen Städten über mehrere Tage hinweg zur Verfügung gestellt. Der Tensor hat folgende Struktur:

  • Dimension 1: repräsentiert verschiedene Städte;
  • Dimension 2: repräsentiert verschiedene Tage.
  • Jeder Eintrag im Tensor ist ein Tupel aus (temperature, humidity).

Zielsetzung

  1. Berechnung der durchschnittlichen Temperatur für jede Stadt über alle Tage hinweg.
  2. Ermittlung des maximalen Feuchtigkeitswerts über alle Städte hinweg für jeden Tag.

Hinweis

In diesem Tensor steht die erste Zahl in jedem Tupel für die Temperatur (in Celsius) und die zweite Zahl für die Luftfeuchtigkeit (in Prozent) für den jeweiligen Tag und die jeweilige Stadt.

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 12
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

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

bookReduktionsoperationen

Swipe um das Menü anzuzeigen

Reduktionsoperationen

Im Bereich der Tensoroperationen gibt es zahlreiche Aufgaben, bei denen die Dimensionen der Daten reduziert werden müssen, entweder durch Zusammenfassung über eine oder mehrere Achsen. Wenn beispielsweise ein 2D-Tensor (eine Matrix) vorliegt, kann eine Reduktionsoperation einen Wert für jede Zeile oder jede Spalte berechnen, was zu einem 1D-Tensor (einem Vektor) führt. TensorFlow stellt eine Reihe von Operationen zur Verfügung, um dies zu erreichen. In diesem Kapitel werden die am häufigsten verwendeten Reduktionsoperationen vorgestellt.

Summe, Mittelwert, Maximum und Minimum

TensorFlow bietet die folgenden Methoden für diese Berechnungen an:

  • tf.reduce_sum(): berechnet die Summe aller Elemente im Tensor oder entlang einer bestimmten Achse;
  • tf.reduce_mean(): berechnet den Mittelwert der Tensor-Elemente;
  • tf.reduce_max(): bestimmt den Maximalwert im Tensor;
  • tf.reduce_min(): ermittelt den Minimalwert im 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
Hinweis

Die Methode .numpy() wurde verwendet, um die Tensoren in NumPy-Arrays umzuwandeln, was eine klarere visuelle Darstellung der Zahlen bei der Anzeige ermöglicht.

Operationen entlang bestimmter Achsen

Tensoren können mehrere Dimensionen besitzen, und manchmal möchte man Reduktionen entlang einer bestimmten Achse durchführen. Der Parameter axis ermöglicht es, anzugeben, welche Achse oder Achsen reduziert werden sollen.

  • axis=0: Durchführung der Operation entlang der Zeilen (ergibt einen Spaltenvektor);
  • axis=1: Durchführung der Operation entlang der Spalten (ergibt einen Zeilenvektor);
  • Es ist möglich, gleichzeitig entlang mehrerer Achsen zu reduzieren, indem man dem Parameter axis eine Liste übergibt;
  • Wenn der Rang des Tensors reduziert wird, kann mit keepdims=True die reduzierte Dimension als 1 beibehalten werden.

Für einen 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
Hinweis

Wenn eine Reduktionsoperation entlang einer bestimmten Achse ausgeführt wird, wird diese Achse im Tensor eliminiert, wobei alle Tensoren innerhalb dieser Achse elementweise aggregiert werden. Dieser Effekt bleibt unabhängig von der Anzahl der Dimensionen erhalten.

So sieht es bei einem 3D-Tensor aus:

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
Hinweis

Viele weitere Reduktionsoperationen existieren in TensorFlow, sie basieren jedoch auf denselben Prinzipien.

Aufgabe

Swipe to start coding

Hintergrund

Sie sind Datenwissenschaftler bei einer Wetterforschungsagentur. Ihnen wurde ein Tensor mit Wetterdaten aus verschiedenen Städten über mehrere Tage hinweg zur Verfügung gestellt. Der Tensor hat folgende Struktur:

  • Dimension 1: repräsentiert verschiedene Städte;
  • Dimension 2: repräsentiert verschiedene Tage.
  • Jeder Eintrag im Tensor ist ein Tupel aus (temperature, humidity).

Zielsetzung

  1. Berechnung der durchschnittlichen Temperatur für jede Stadt über alle Tage hinweg.
  2. Ermittlung des maximalen Feuchtigkeitswerts über alle Städte hinweg für jeden Tag.

Hinweis

In diesem Tensor steht die erste Zahl in jedem Tupel für die Temperatur (in Celsius) und die zweite Zahl für die Luftfeuchtigkeit (in Prozent) für den jeweiligen Tag und die jeweilige Stadt.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 12
single

single

some-alt