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

Kursinhalt

Einführung in TensorFlow

Einführung in TensorFlow

1. Tensoren
2. Grundlagen von TensorFlow

book
Reduktionsoperationen

Reduktionsoperationen

In der Welt der Tensoroperationen gibt es zahlreiche Aufgaben, bei denen wir die Dimensionen unserer Daten reduzieren müssen, entweder indem wir sie über eine oder mehrere Achsen zusammenfassen. Wenn wir beispielsweise einen 2D-Tensor (eine Matrix) haben, könnte eine Reduktionsoperation einen Wert für jede Zeile oder jede Spalte berechnen, was zu einem 1D-Tensor (einem Vektor) führt. TensorFlow bietet eine Reihe von Operationen, um dies zu erreichen, und in diesem Kapitel werden wir die am häufigsten verwendeten Reduktionsoperationen erkunden.

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

Hinweis

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

Operationen entlang spezifischer Achsen

Tensors können mehrere Dimensionen haben, und manchmal möchten wir Reduktionen entlang einer spezifischen Achse durchführen. Der axis-Parameter ermöglicht es uns, anzugeben, welche Achse oder Achsen wir reduzieren möchten.

  • axis=0: Führen Sie die Operation entlang der Zeilen aus (ergibt einen Spaltenvektor);
  • axis=1: Führen Sie die Operation entlang der Spalten aus (ergibt einen Zeilenvektor);
  • Es ist möglich, gleichzeitig entlang mehrerer Achsen zu reduzieren, indem man eine Liste an den axis-Parameter übergibt;
  • Wenn der Rang des Tensors reduziert wird, können Sie keepdims=True verwenden, um die reduzierte Dimension als 1 beizubehalten.

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

Hinweis

Wenn Sie eine Reduktionsoperation entlang einer bestimmten Achse ausführen, eliminieren Sie im Wesentlichen diese Achse aus dem Tensor, indem Sie alle Tensoren innerhalb dieser Achse elementweise aggregieren. Der gleiche Effekt bleibt für jede Anzahl von Dimensionen bestehen.

So sieht es für einen 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

Hinweis

Viele andere Reduktionsoperationen existieren in TensorFlow, aber sie funktionieren nach 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 die folgende Struktur:

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

Zielsetzung

  1. Berechnen Sie die durchschnittliche Temperatur für jede Stadt über alle Tage.
  2. Berechnen Sie die maximale Luftfeuchtigkeit über alle Städte 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 diesen Tag und diese 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
toggle bottom row

book
Reduktionsoperationen

Reduktionsoperationen

In der Welt der Tensoroperationen gibt es zahlreiche Aufgaben, bei denen wir die Dimensionen unserer Daten reduzieren müssen, entweder indem wir sie über eine oder mehrere Achsen zusammenfassen. Wenn wir beispielsweise einen 2D-Tensor (eine Matrix) haben, könnte eine Reduktionsoperation einen Wert für jede Zeile oder jede Spalte berechnen, was zu einem 1D-Tensor (einem Vektor) führt. TensorFlow bietet eine Reihe von Operationen, um dies zu erreichen, und in diesem Kapitel werden wir die am häufigsten verwendeten Reduktionsoperationen erkunden.

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

Hinweis

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

Operationen entlang spezifischer Achsen

Tensors können mehrere Dimensionen haben, und manchmal möchten wir Reduktionen entlang einer spezifischen Achse durchführen. Der axis-Parameter ermöglicht es uns, anzugeben, welche Achse oder Achsen wir reduzieren möchten.

  • axis=0: Führen Sie die Operation entlang der Zeilen aus (ergibt einen Spaltenvektor);
  • axis=1: Führen Sie die Operation entlang der Spalten aus (ergibt einen Zeilenvektor);
  • Es ist möglich, gleichzeitig entlang mehrerer Achsen zu reduzieren, indem man eine Liste an den axis-Parameter übergibt;
  • Wenn der Rang des Tensors reduziert wird, können Sie keepdims=True verwenden, um die reduzierte Dimension als 1 beizubehalten.

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

Hinweis

Wenn Sie eine Reduktionsoperation entlang einer bestimmten Achse ausführen, eliminieren Sie im Wesentlichen diese Achse aus dem Tensor, indem Sie alle Tensoren innerhalb dieser Achse elementweise aggregieren. Der gleiche Effekt bleibt für jede Anzahl von Dimensionen bestehen.

So sieht es für einen 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

Hinweis

Viele andere Reduktionsoperationen existieren in TensorFlow, aber sie funktionieren nach 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 die folgende Struktur:

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

Zielsetzung

  1. Berechnen Sie die durchschnittliche Temperatur für jede Stadt über alle Tage.
  2. Berechnen Sie die maximale Luftfeuchtigkeit über alle Städte 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 diesen Tag und diese 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
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
We're sorry to hear that something went wrong. What happened?
some-alt