Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Grundlegende Operationen: Arithmetik | Tensors
Einführung in TensorFlow

bookGrundlegende 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.

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 analoge Methoden wie für die Addition:

  • tf.add() wird zu tf.subtract();
  • Das Pluszeichen + wird zum 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 besitzen 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 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.

Note
Mehr erfahren

Für ein tieferes Verständnis von Broadcasting empfiehlt sich die offizielle NumPy-Dokumentationsseite zu diesem Thema.

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 1. Kapitel 8
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 5.56

bookGrundlegende 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.

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 analoge Methoden wie für die Addition:

  • tf.add() wird zu tf.subtract();
  • Das Pluszeichen + wird zum 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 besitzen 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 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.

Note
Mehr erfahren

Für ein tieferes Verständnis von Broadcasting empfiehlt sich die offizielle NumPy-Dokumentationsseite zu diesem Thema.

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

single

some-alt