Kursinhalt
Einführung in TensorFlow
Einführung in TensorFlow
Grundoperationen: Arithmetik
Arithmetische Operationen
TensorFlow bietet zahlreiche arithmetische Operationen zur Manipulation von Tensoren. Diese Operationen und viele andere in TensorFlow unterstützen Broadcasting, was es einfacher macht, elementweise Operationen auf Tensoren unterschiedlicher Formen durchzuführen.
Addition
Für die Addition von Tensors können wir die Methoden tf.add()
, .assign_add()
und ein Pluszeichen +
verwenden. Außerdem können wir Broadcasting mit dem Pluszeichen +
oder mit der Methode tf.add()
verwenden.
Broadcasting ermöglicht es, elementweise Operationen auf Tensors mit unterschiedlichen, aber kompatiblen Formen durchzuführen, indem der kleinere Tensor virtuell erweitert wird, um die Form des größeren Tensors anzupassen.
import 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)
Hinweis
Für die Inplace-Methode muss das grundlegende Element ein änderbarer
Variable
-Typ und keine Konstante sein.
Subtraktion
Wir haben Analoga aller Methoden für die Subtraktion wie für die Addition:
tf.add()
ändert sich intf.subtract()
;- Pluszeichen
+
ändert sich in Minuszeichen-
; .assign_add()
ändert sich in.assign_sub()
.
import 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 von Natur aus ein neues Objekt ergibt. Andere Operationen haben jedoch ihre Gegenstücke:
tf.add()
entsprichttf.multiply()
;- Das Pluszeichen
+
entspricht dem Sternzeichen*
.
import 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, aber mit tf.divide()
und /
Zeichen.
import 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 ist der Begriff, der beschreibt, wie Tensoren mit unterschiedlichen Formen während arithmetischer Operationen automatisch und implizit behandelt werden, sodass sie erscheinen, als hätten sie die gleiche Form. Es ermöglicht, Operationen auf Tensoren unterschiedlicher Größen durchzuführen, ohne sie vorher explizit anzupassen.
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 anderen 1x2-Matrix.
- Broadcasting-Division zwischen zwei Matrizen, eine der Größe 2x3 und die andere 2x1.
Hinweis
Beachten Sie das Broadcasting-Verhalten bei den Multiplikations- und Divisionsoperationen. Bei der Multiplikation ist es wie das Multiplizieren von
[[1, 2], [3, 4], [5, 6]]
mit[[2, 4], [2, 4], [2, 4]]
. Bei der Division ist es wie das Teilen von[[2, 4, 6], [4, 8, 12]]
durch[[2, 2, 2], [4, 4, 4]]
.Im ersten Fall wird die Matrix 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. Es hängt von der Form der Matrizen ab.
Lösung
Danke für Ihr Feedback!
Grundoperationen: Arithmetik
Arithmetische Operationen
TensorFlow bietet zahlreiche arithmetische Operationen zur Manipulation von Tensoren. Diese Operationen und viele andere in TensorFlow unterstützen Broadcasting, was es einfacher macht, elementweise Operationen auf Tensoren unterschiedlicher Formen durchzuführen.
Addition
Für die Addition von Tensors können wir die Methoden tf.add()
, .assign_add()
und ein Pluszeichen +
verwenden. Außerdem können wir Broadcasting mit dem Pluszeichen +
oder mit der Methode tf.add()
verwenden.
Broadcasting ermöglicht es, elementweise Operationen auf Tensors mit unterschiedlichen, aber kompatiblen Formen durchzuführen, indem der kleinere Tensor virtuell erweitert wird, um die Form des größeren Tensors anzupassen.
import 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)
Hinweis
Für die Inplace-Methode muss das grundlegende Element ein änderbarer
Variable
-Typ und keine Konstante sein.
Subtraktion
Wir haben Analoga aller Methoden für die Subtraktion wie für die Addition:
tf.add()
ändert sich intf.subtract()
;- Pluszeichen
+
ändert sich in Minuszeichen-
; .assign_add()
ändert sich in.assign_sub()
.
import 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 von Natur aus ein neues Objekt ergibt. Andere Operationen haben jedoch ihre Gegenstücke:
tf.add()
entsprichttf.multiply()
;- Das Pluszeichen
+
entspricht dem Sternzeichen*
.
import 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, aber mit tf.divide()
und /
Zeichen.
import 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 ist der Begriff, der beschreibt, wie Tensoren mit unterschiedlichen Formen während arithmetischer Operationen automatisch und implizit behandelt werden, sodass sie erscheinen, als hätten sie die gleiche Form. Es ermöglicht, Operationen auf Tensoren unterschiedlicher Größen durchzuführen, ohne sie vorher explizit anzupassen.
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 anderen 1x2-Matrix.
- Broadcasting-Division zwischen zwei Matrizen, eine der Größe 2x3 und die andere 2x1.
Hinweis
Beachten Sie das Broadcasting-Verhalten bei den Multiplikations- und Divisionsoperationen. Bei der Multiplikation ist es wie das Multiplizieren von
[[1, 2], [3, 4], [5, 6]]
mit[[2, 4], [2, 4], [2, 4]]
. Bei der Division ist es wie das Teilen von[[2, 4, 6], [4, 8, 12]]
durch[[2, 2, 2], [4, 4, 4]]
.Im ersten Fall wird die Matrix 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. Es hängt von der Form der Matrizen ab.
Lösung
Danke für Ihr Feedback!