Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Arithmetik | Tensor Operations and Execution
Einführung in TensorFlow

bookArithmetik

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.

12345678910111213141516171819202122232425
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)
copy
Note
Hinweis

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 zu tf.subtract();
  • Pluszeichen + wird zu Minuszeichen -;
  • .assign_add() wird zu .assign_sub().
123456789101112131415161718192021
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)
copy

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() entspricht tf.multiply();
  • Das Pluszeichen + entspricht dem Sternchen *.
1234567891011121314151617
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)
copy

Division

Ähnlich wie bei der Multiplikation, jedoch mit tf.divide() und dem /-Zeichen.

1234567891011121314151617
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)
copy

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.

Note
Mehr erfahren

Für ein tieferes Verständnis von Broadcasting kann die offizielle NumPy-Dokumentationsseite zu diesem Thema herangezogen werden.

Aufgabe

Swipe to start coding

Gegeben ist eine Menge von Matrizen. Führen Sie die folgenden Operationen durch:

  1. Inplace-Addition einer 2x2-Matrix.
  2. Subtraktion mit der Methode tf.subtract() für eine 2x3-Matrix.
  3. Broadcasting-Multiplikation einer 3x2-Matrix mit einer weiteren 1x2-Matrix.
  4. 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

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 1
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

close

Awesome!

Completion rate improved to 6.25

bookArithmetik

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.

12345678910111213141516171819202122232425
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)
copy
Note
Hinweis

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 zu tf.subtract();
  • Pluszeichen + wird zu Minuszeichen -;
  • .assign_add() wird zu .assign_sub().
123456789101112131415161718192021
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)
copy

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() entspricht tf.multiply();
  • Das Pluszeichen + entspricht dem Sternchen *.
1234567891011121314151617
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)
copy

Division

Ähnlich wie bei der Multiplikation, jedoch mit tf.divide() und dem /-Zeichen.

1234567891011121314151617
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)
copy

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.

Note
Mehr erfahren

Für ein tieferes Verständnis von Broadcasting kann die offizielle NumPy-Dokumentationsseite zu diesem Thema herangezogen werden.

Aufgabe

Swipe to start coding

Gegeben ist eine Menge von Matrizen. Führen Sie die folgenden Operationen durch:

  1. Inplace-Addition einer 2x2-Matrix.
  2. Subtraktion mit der Methode tf.subtract() für eine 2x3-Matrix.
  3. Broadcasting-Multiplikation einer 3x2-Matrix mit einer weiteren 1x2-Matrix.
  4. 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

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 2. Kapitel 1
single

single

some-alt