Grundlegende Operationen: Arithmetik
Arithmetische Operationen
TensorFlow stellt zahlreiche arithmetische Operationen zur Manipulation von Tensoren bereit. Diese und viele weitere Operationen in TensorFlow unterstützen das Broadcasting, was die Durchführung von elementweisen Operationen auf Tensoren mit unterschiedlichen Formen erleichtert.
Addition
Für die Addition von Tensoren können wir die Methoden tf.add()
, .assign_add()
sowie das Pluszeichen +
verwenden. Broadcasting ist sowohl mit dem Pluszeichen +
als auch mit der Methode tf.add()
möglich.
Broadcasting ermöglicht es, elementweise Operationen auf Tensoren mit unterschiedlichen, aber kompatiblen Formen durchzuführen, indem der kleinere Tensor virtuell an die Form des größeren Tensors angepasst wird.
12345678910111213141516171819202122232425import tensorflow as tf # Create two tensors a = tf.Variable([1, 2, 3]) b = tf.constant([4, 5, 6]) # Perform element-wise addition with TF method c1 = tf.add(a, b) # Same as `c1` calculation, but shorter c2 = a + b # Using broadcasting; # Same as `[1, 2, 3] + [3, 3, 3]` c3 = a + 3 # The most efficient one; # Changes the object inplace without creating a new one; # Result is the same as for `c1` and `c2`. a.assign_add(b) print('TF method:\t', c1) print('Plus sign:\t', c2) print('Broadcasting:\t', c3) print('Inplace change:\t', a)
Für die Inplace-Methode muss das grundlegende Element ein veränderbarer Variable
-Typ und kein Konstante sein.
Subtraktion
Für die Subtraktion existieren analoge Methoden wie für die Addition:
tf.add()
wird zutf.subtract()
;- Das Pluszeichen
+
wird zum Minuszeichen-
; .assign_add()
wird zu.assign_sub()
.
123456789101112131415161718192021import tensorflow as tf # Create two tensors a = tf.Variable([4, 5, 6]) b = tf.constant([1, 2, 3]) # Perform element-wise substraction c1 = tf.subtract(a, b) c2 = a - b # Using broadcasting; # Same as `[4, 5, 6] - [3, 3, 3]` c3 = a - 3 # Inplace substraction a.assign_sub(b) print('TF method:\t', c1) print('Minus sign:\t', c2) print('Broadcasting:\t', c3) print('Inplace change:\t', a)
Multiplikation (Elementweise)
Für die Multiplikation gibt es keine Inplace-Methode, da die Matrixmultiplikation grundsätzlich ein neues Objekt erzeugt. Andere Operationen besitzen jedoch entsprechende Gegenstücke:
tf.add()
entsprichttf.multiply()
;- Das Pluszeichen
+
entspricht dem Sternchen*
.
1234567891011121314151617import tensorflow as tf # Create two tensors a = tf.constant([1, 2, 3]) b = tf.constant([4, 5, 6]) # Perform element-wise multiplication c1 = tf.multiply(a, b) c2 = a * b # Using broadcasting; # Same as `[1, 2, 3] * [3, 3, 3]` c3 = a * 3 print('TF method:\t', c1) print('Asterisk sign:\t', c2) print('Broadcasting:\t', c3)
Division
Ähnlich wie bei der Multiplikation, jedoch mit tf.divide()
und dem /
-Zeichen.
1234567891011121314151617import tensorflow as tf # Create two tensors a = tf.constant([6, 8, 10]) b = tf.constant([2, 4, 5]) # Perform element-wise division c1 = tf.divide(a, b) c2 = a / b # Using broadcasting; # Same as `[6, 8, 10] / [2, 2, 2]` c3 = a / 2 print('TF method:\t', c1) print('Asterisk sign:\t', c2) print('Broadcasting:\t', c3)
Broadcasting
Broadcasting bezeichnet das automatische und implizite Anpassen von Tensoren mit unterschiedlichen Formen während arithmetischer Operationen, sodass sie so behandelt werden, als hätten sie die gleiche Form. Dadurch können Operationen auf Tensoren unterschiedlicher Größe durchgeführt werden, ohne dass diese vorher explizit angepasst werden müssen.
Für ein tieferes Verständnis von Broadcasting empfiehlt sich die offizielle NumPy-Dokumentationsseite zu diesem Thema.
Swipe to start coding
Gegeben ist eine Menge von Matrizen. Führen Sie die folgenden Operationen durch:
- Inplace-Addition einer 2x2-Matrix.
- Subtraktion mit der Methode
tf.subtract()
für eine 2x3-Matrix. - Broadcasting-Multiplikation einer 3x2-Matrix mit einer weiteren 1x2-Matrix.
- Broadcasting-Division zwischen zwei Matrizen, eine mit der Größe 2x3 und die andere 2x1.
Hinweis
Beachten Sie das Broadcasting-Verhalten bei den Multiplikations- und Divisionsoperationen. Bei der Multiplikation entspricht es der Multiplikation von
[[1, 2], [3, 4], [5, 6]]
mit[[2, 4], [2, 4], [2, 4]]
. Bei der Division entspricht es der Division von[[2, 4, 6], [4, 8, 12]]
durch[[2, 2, 2], [4, 4, 4]]
.Im ersten Fall wird die Matrix beim Broadcasting entlang der 0. Achse (erster Parameter der Form) erweitert, während im zweiten Fall die Matrix entlang der 1. Achse (zweiter Parameter der Form) erweitert wird. Dies hängt von der Form der Matrizen ab.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 5.56
Grundlegende Operationen: Arithmetik
Swipe um das Menü anzuzeigen
Arithmetische Operationen
TensorFlow stellt zahlreiche arithmetische Operationen zur Manipulation von Tensoren bereit. Diese und viele weitere Operationen in TensorFlow unterstützen das Broadcasting, was die Durchführung von elementweisen Operationen auf Tensoren mit unterschiedlichen Formen erleichtert.
Addition
Für die Addition von Tensoren können wir die Methoden tf.add()
, .assign_add()
sowie das Pluszeichen +
verwenden. Broadcasting ist sowohl mit dem Pluszeichen +
als auch mit der Methode tf.add()
möglich.
Broadcasting ermöglicht es, elementweise Operationen auf Tensoren mit unterschiedlichen, aber kompatiblen Formen durchzuführen, indem der kleinere Tensor virtuell an die Form des größeren Tensors angepasst wird.
12345678910111213141516171819202122232425import tensorflow as tf # Create two tensors a = tf.Variable([1, 2, 3]) b = tf.constant([4, 5, 6]) # Perform element-wise addition with TF method c1 = tf.add(a, b) # Same as `c1` calculation, but shorter c2 = a + b # Using broadcasting; # Same as `[1, 2, 3] + [3, 3, 3]` c3 = a + 3 # The most efficient one; # Changes the object inplace without creating a new one; # Result is the same as for `c1` and `c2`. a.assign_add(b) print('TF method:\t', c1) print('Plus sign:\t', c2) print('Broadcasting:\t', c3) print('Inplace change:\t', a)
Für die Inplace-Methode muss das grundlegende Element ein veränderbarer Variable
-Typ und kein Konstante sein.
Subtraktion
Für die Subtraktion existieren analoge Methoden wie für die Addition:
tf.add()
wird zutf.subtract()
;- Das Pluszeichen
+
wird zum Minuszeichen-
; .assign_add()
wird zu.assign_sub()
.
123456789101112131415161718192021import tensorflow as tf # Create two tensors a = tf.Variable([4, 5, 6]) b = tf.constant([1, 2, 3]) # Perform element-wise substraction c1 = tf.subtract(a, b) c2 = a - b # Using broadcasting; # Same as `[4, 5, 6] - [3, 3, 3]` c3 = a - 3 # Inplace substraction a.assign_sub(b) print('TF method:\t', c1) print('Minus sign:\t', c2) print('Broadcasting:\t', c3) print('Inplace change:\t', a)
Multiplikation (Elementweise)
Für die Multiplikation gibt es keine Inplace-Methode, da die Matrixmultiplikation grundsätzlich ein neues Objekt erzeugt. Andere Operationen besitzen jedoch entsprechende Gegenstücke:
tf.add()
entsprichttf.multiply()
;- Das Pluszeichen
+
entspricht dem Sternchen*
.
1234567891011121314151617import tensorflow as tf # Create two tensors a = tf.constant([1, 2, 3]) b = tf.constant([4, 5, 6]) # Perform element-wise multiplication c1 = tf.multiply(a, b) c2 = a * b # Using broadcasting; # Same as `[1, 2, 3] * [3, 3, 3]` c3 = a * 3 print('TF method:\t', c1) print('Asterisk sign:\t', c2) print('Broadcasting:\t', c3)
Division
Ähnlich wie bei der Multiplikation, jedoch mit tf.divide()
und dem /
-Zeichen.
1234567891011121314151617import tensorflow as tf # Create two tensors a = tf.constant([6, 8, 10]) b = tf.constant([2, 4, 5]) # Perform element-wise division c1 = tf.divide(a, b) c2 = a / b # Using broadcasting; # Same as `[6, 8, 10] / [2, 2, 2]` c3 = a / 2 print('TF method:\t', c1) print('Asterisk sign:\t', c2) print('Broadcasting:\t', c3)
Broadcasting
Broadcasting bezeichnet das automatische und implizite Anpassen von Tensoren mit unterschiedlichen Formen während arithmetischer Operationen, sodass sie so behandelt werden, als hätten sie die gleiche Form. Dadurch können Operationen auf Tensoren unterschiedlicher Größe durchgeführt werden, ohne dass diese vorher explizit angepasst werden müssen.
Für ein tieferes Verständnis von Broadcasting empfiehlt sich die offizielle NumPy-Dokumentationsseite zu diesem Thema.
Swipe to start coding
Gegeben ist eine Menge von Matrizen. Führen Sie die folgenden Operationen durch:
- Inplace-Addition einer 2x2-Matrix.
- Subtraktion mit der Methode
tf.subtract()
für eine 2x3-Matrix. - Broadcasting-Multiplikation einer 3x2-Matrix mit einer weiteren 1x2-Matrix.
- Broadcasting-Division zwischen zwei Matrizen, eine mit der Größe 2x3 und die andere 2x1.
Hinweis
Beachten Sie das Broadcasting-Verhalten bei den Multiplikations- und Divisionsoperationen. Bei der Multiplikation entspricht es der Multiplikation von
[[1, 2], [3, 4], [5, 6]]
mit[[2, 4], [2, 4], [2, 4]]
. Bei der Division entspricht es der Division von[[2, 4, 6], [4, 8, 12]]
durch[[2, 2, 2], [4, 4, 4]]
.Im ersten Fall wird die Matrix beim Broadcasting entlang der 0. Achse (erster Parameter der Form) erweitert, während im zweiten Fall die Matrix entlang der 1. Achse (zweiter Parameter der Form) erweitert wird. Dies hängt von der Form der Matrizen ab.
Lösung
Danke für Ihr Feedback!
single