Kursinhalt
Einführung in TensorFlow
Einführung in TensorFlow
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.
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())
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):
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())
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:
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())
Hinweis
Viele andere Reduktionsoperationen existieren in TensorFlow, aber sie funktionieren nach denselben Prinzipien.
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
- Berechnen Sie die durchschnittliche Temperatur für jede Stadt über alle Tage.
- 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
Danke für Ihr Feedback!
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.
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())
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):
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())
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:
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())
Hinweis
Viele andere Reduktionsoperationen existieren in TensorFlow, aber sie funktionieren nach denselben Prinzipien.
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
- Berechnen Sie die durchschnittliche Temperatur für jede Stadt über alle Tage.
- 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
Danke für Ihr Feedback!