Arithmetik
Arithmetische Operationen
TensorFlow bietet zahlreiche arithmetische Operationen zur Manipulation von Tensoren. Diese und viele weitere Operationen in TensorFlow unterstützen das Broadcasting, wodurch elementweise Operationen auf Tensoren unterschiedlicher Formen erleichtert werden.
Addition
Für die Addition von Tensoren können tf.add(), .assign_add() Methoden und das Pluszeichen + verwendet werden. Broadcasting ist sowohl mit dem Pluszeichen + als auch mit der Methode tf.add() möglich.
Broadcasting ermöglicht elementweise Operationen auf Tensoren mit unterschiedlichen, aber kompatiblen Formen, 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 Analoga zu allen Methoden wie bei der Addition:
tf.add()wird zutf.subtract();- Pluszeichen
+wird zu 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 haben 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 die automatische und implizite Behandlung von Tensoren mit unterschiedlichen Formen bei arithmetischen Operationen, sodass sie so erscheinen, als hätten sie die gleiche Form. Dies ermöglicht Operationen mit Tensoren unterschiedlicher Größe, ohne dass diese explizit zuvor angepasst werden müssen.
Für ein tieferes Verständnis von Broadcasting kann die offizielle NumPy-Dokumentationsseite zu diesem Thema herangezogen werden.
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 6.25
Arithmetik
Swipe um das Menü anzuzeigen
Arithmetische Operationen
TensorFlow bietet zahlreiche arithmetische Operationen zur Manipulation von Tensoren. Diese und viele weitere Operationen in TensorFlow unterstützen das Broadcasting, wodurch elementweise Operationen auf Tensoren unterschiedlicher Formen erleichtert werden.
Addition
Für die Addition von Tensoren können tf.add(), .assign_add() Methoden und das Pluszeichen + verwendet werden. Broadcasting ist sowohl mit dem Pluszeichen + als auch mit der Methode tf.add() möglich.
Broadcasting ermöglicht elementweise Operationen auf Tensoren mit unterschiedlichen, aber kompatiblen Formen, 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 Analoga zu allen Methoden wie bei der Addition:
tf.add()wird zutf.subtract();- Pluszeichen
+wird zu 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 haben 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 die automatische und implizite Behandlung von Tensoren mit unterschiedlichen Formen bei arithmetischen Operationen, sodass sie so erscheinen, als hätten sie die gleiche Form. Dies ermöglicht Operationen mit Tensoren unterschiedlicher Größe, ohne dass diese explizit zuvor angepasst werden müssen.
Für ein tieferes Verständnis von Broadcasting kann die offizielle NumPy-Dokumentationsseite zu diesem Thema herangezogen werden.
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