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

bookDatentypen

Datentypen

In diesem Abschnitt wird das Konzept der Datentypen in TensorFlow behandelt. Ähnlich wie Programmiersprachen Zahlen und Text in Typen wie Integer, Float oder String kategorisieren, verfügen Tensoren in TensorFlow ebenfalls über spezifische Typen.

Verfügbare Datentypen in TensorFlow

TensorFlow unterstützt eine Vielzahl von Datentypen, um verschiedene Arten von Daten und Operationen abzudecken. Zu den am häufigsten verwendeten Typen gehören:

  • tf.float16, tf.float32, tf.float64: Fließkommazahlen, bei denen die Nachkommastellen relevant sind. Die Zahl im Namen (wie 16 in tf.float16) gibt die Anzahl der verwendeten Bits an. tf.float32 wird häufig verwendet, da es ein gutes Gleichgewicht zwischen Genauigkeit und Rechengeschwindigkeit bietet;

  • tf.int8, tf.int16, tf.int32, tf.int64: Ganzzahltypen, Zahlen ohne Dezimalpunkt. Sie können sowohl positiv als auch negativ sein;

  • tf.uint8, tf.uint16, tf.uint32, tf.uint64: 'u' steht hier für 'unsigned', was bedeutet, dass diese Ganzzahlen immer nicht-negativ sind;

  • tf.bool: Repräsentiert boolesche Werte (True oder False);

  • tf.string: Für Textdaten.

Note
Hinweis

Bei Ganzzahltypen bedeutet eine größere Zahl im Namen lediglich einen größeren Wertebereich, der gespeichert werden kann. Bei Fließkommatypen weist eine höhere Zahl im Namen zudem auf eine höhere Rechengenauigkeit hin.

In TensorFlow stehen weitere Datentypen zur Verfügung, jedoch ist es für Einsteiger wichtig, sich zunächst mit diesen grundlegenden Typen vertraut zu machen. Eine vollständige Liste der von TensorFlow unterstützten Datentypen finden Sie auf dieser speziellen Seite in der TensorFlow-Dokumentation.

Festlegen des Datentyps beim Erstellen eines Tensors

Beim Initialisieren eines Tensors kann der Typ mit dem Argument dtype angegeben werden:

123456789101112
import tensorflow as tf # Creating a tensor of type `float16` tensor_float = tf.constant([1.2, 2.3, 3.4], dtype=tf.float16) # Creating a tensor of type `int64` tensor_int = tf.constant([1, 2, 3], dtype=tf.int64) # Display tensors print(tensor_float) print('-' * 50) print(tensor_int)
copy
Note
Hinweis

Viele Funktionen zur Tensor-Erstellung verwenden diesen Ansatz. Dies gilt für Methoden wie tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform() und sogar für tf.convert_to_tensor().

Konvertierung zwischen Datentypen

Was ist jedoch, wenn die verwendete Funktion keine direkte Angabe des Datentyps erlaubt? Oder Sie besitzen bereits einen Tensor eines bestimmten Typs und müssen diesen ändern. In solchen Fällen ist es notwendig, Tensoren von einem Datentyp in einen anderen umzuwandeln. Dies ist besonders relevant, da bestimmte Operationen oder Schichten in neuronalen Netzen häufig Eingaben eines bestimmten Typs, überwiegend Gleitkommazahlen, erfordern.

Hierfür kann tf.cast() verwendet werden:

123456789101112
import tensorflow as tf # Create a tensor tensor_float = tf.constant([-1.2, 2.3, 3.8]) # Convert our `tensor_float` from `float32` to `int32` tensor_int_converted = tf.cast(tensor_float, dtype=tf.int32) # Display a tensor print(tensor_float) print('-' * 50) print(tensor_int_converted)
copy

Beachten Sie, dass beim Konvertieren von einem Gleitkommatyp zu einem Ganzzahltyp TensorFlow eine Abrundung nach unten durchführt, wobei der Dezimalteil entfernt wird. So wird aus 3.8 die 3 und aus -1.2 die -1.

Note
Hinweis

Vorsicht beim Ändern von Datentypen, insbesondere beim Wechsel zu einem Typ mit geringerer Genauigkeit. Es kann dabei zu Informationsverlust kommen.

Aufgabe

Swipe to start coding

Ihre Aufgabe besteht darin, einen Tensor mit einem bestimmten Datentyp zu erstellen und diesen anschließend in einen anderen Datentyp zu konvertieren.

  1. Erstellen Sie einen Tensor mit dem Namen initial_tensor der Form (3, 3) mit normalverteilten Werten. Stellen Sie sicher, dass dieser Tensor den Datentyp 64-Bit-Gleitkommazahlen besitzt.
  2. Wandeln Sie den initial_tensor in einen Tensor namens converted_tensor mit dem Datentyp 16-Bit-Gleitkommazahlen um.

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 7
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

Suggested prompts:

What are some practical examples of when I would need to change a tensor's data type?

Can you explain the difference between signed and unsigned integer types in TensorFlow?

How do I check the data type of an existing tensor?

close

Awesome!

Completion rate improved to 5.56

bookDatentypen

Swipe um das Menü anzuzeigen

Datentypen

In diesem Abschnitt wird das Konzept der Datentypen in TensorFlow behandelt. Ähnlich wie Programmiersprachen Zahlen und Text in Typen wie Integer, Float oder String kategorisieren, verfügen Tensoren in TensorFlow ebenfalls über spezifische Typen.

Verfügbare Datentypen in TensorFlow

TensorFlow unterstützt eine Vielzahl von Datentypen, um verschiedene Arten von Daten und Operationen abzudecken. Zu den am häufigsten verwendeten Typen gehören:

  • tf.float16, tf.float32, tf.float64: Fließkommazahlen, bei denen die Nachkommastellen relevant sind. Die Zahl im Namen (wie 16 in tf.float16) gibt die Anzahl der verwendeten Bits an. tf.float32 wird häufig verwendet, da es ein gutes Gleichgewicht zwischen Genauigkeit und Rechengeschwindigkeit bietet;

  • tf.int8, tf.int16, tf.int32, tf.int64: Ganzzahltypen, Zahlen ohne Dezimalpunkt. Sie können sowohl positiv als auch negativ sein;

  • tf.uint8, tf.uint16, tf.uint32, tf.uint64: 'u' steht hier für 'unsigned', was bedeutet, dass diese Ganzzahlen immer nicht-negativ sind;

  • tf.bool: Repräsentiert boolesche Werte (True oder False);

  • tf.string: Für Textdaten.

Note
Hinweis

Bei Ganzzahltypen bedeutet eine größere Zahl im Namen lediglich einen größeren Wertebereich, der gespeichert werden kann. Bei Fließkommatypen weist eine höhere Zahl im Namen zudem auf eine höhere Rechengenauigkeit hin.

In TensorFlow stehen weitere Datentypen zur Verfügung, jedoch ist es für Einsteiger wichtig, sich zunächst mit diesen grundlegenden Typen vertraut zu machen. Eine vollständige Liste der von TensorFlow unterstützten Datentypen finden Sie auf dieser speziellen Seite in der TensorFlow-Dokumentation.

Festlegen des Datentyps beim Erstellen eines Tensors

Beim Initialisieren eines Tensors kann der Typ mit dem Argument dtype angegeben werden:

123456789101112
import tensorflow as tf # Creating a tensor of type `float16` tensor_float = tf.constant([1.2, 2.3, 3.4], dtype=tf.float16) # Creating a tensor of type `int64` tensor_int = tf.constant([1, 2, 3], dtype=tf.int64) # Display tensors print(tensor_float) print('-' * 50) print(tensor_int)
copy
Note
Hinweis

Viele Funktionen zur Tensor-Erstellung verwenden diesen Ansatz. Dies gilt für Methoden wie tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform() und sogar für tf.convert_to_tensor().

Konvertierung zwischen Datentypen

Was ist jedoch, wenn die verwendete Funktion keine direkte Angabe des Datentyps erlaubt? Oder Sie besitzen bereits einen Tensor eines bestimmten Typs und müssen diesen ändern. In solchen Fällen ist es notwendig, Tensoren von einem Datentyp in einen anderen umzuwandeln. Dies ist besonders relevant, da bestimmte Operationen oder Schichten in neuronalen Netzen häufig Eingaben eines bestimmten Typs, überwiegend Gleitkommazahlen, erfordern.

Hierfür kann tf.cast() verwendet werden:

123456789101112
import tensorflow as tf # Create a tensor tensor_float = tf.constant([-1.2, 2.3, 3.8]) # Convert our `tensor_float` from `float32` to `int32` tensor_int_converted = tf.cast(tensor_float, dtype=tf.int32) # Display a tensor print(tensor_float) print('-' * 50) print(tensor_int_converted)
copy

Beachten Sie, dass beim Konvertieren von einem Gleitkommatyp zu einem Ganzzahltyp TensorFlow eine Abrundung nach unten durchführt, wobei der Dezimalteil entfernt wird. So wird aus 3.8 die 3 und aus -1.2 die -1.

Note
Hinweis

Vorsicht beim Ändern von Datentypen, insbesondere beim Wechsel zu einem Typ mit geringerer Genauigkeit. Es kann dabei zu Informationsverlust kommen.

Aufgabe

Swipe to start coding

Ihre Aufgabe besteht darin, einen Tensor mit einem bestimmten Datentyp zu erstellen und diesen anschließend in einen anderen Datentyp zu konvertieren.

  1. Erstellen Sie einen Tensor mit dem Namen initial_tensor der Form (3, 3) mit normalverteilten Werten. Stellen Sie sicher, dass dieser Tensor den Datentyp 64-Bit-Gleitkommazahlen besitzt.
  2. Wandeln Sie den initial_tensor in einen Tensor namens converted_tensor mit dem Datentyp 16-Bit-Gleitkommazahlen um.

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 7
single

single

some-alt