Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Grundoperationen: Arithmetik | Tensoren
Einführung in TensorFlow
course content

Kursinhalt

Einführung in TensorFlow

Einführung in TensorFlow

1. Tensoren
2. Grundlagen von TensorFlow

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

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

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 in tf.subtract();
  • Pluszeichen + ändert sich in Minuszeichen -;
  • .assign_add() ändert sich in .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 von Natur aus ein neues Objekt ergibt. Andere Operationen haben jedoch ihre Gegenstücke:

  • tf.add() entspricht tf.multiply();
  • Das Pluszeichen + entspricht dem Sternzeichen *.
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, aber mit tf.divide() und / 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 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.

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 anderen 1x2-Matrix.
  4. 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

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
toggle bottom row

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

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

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 in tf.subtract();
  • Pluszeichen + ändert sich in Minuszeichen -;
  • .assign_add() ändert sich in .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 von Natur aus ein neues Objekt ergibt. Andere Operationen haben jedoch ihre Gegenstücke:

  • tf.add() entspricht tf.multiply();
  • Das Pluszeichen + entspricht dem Sternzeichen *.
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, aber mit tf.divide() und / 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 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.

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 anderen 1x2-Matrix.
  4. 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

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
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
We're sorry to hear that something went wrong. What happened?
some-alt