single
Data Types
Veeg om het menu te tonen
Beschikbare gegevenstypen in TensorFlow
TensorFlow ondersteunt een groot aantal gegevenstypen om verschillende soorten data en bewerkingen mogelijk te maken. Enkele van de meest gebruikte typen zijn:
-
tf.float16,tf.float32,tf.float64: dit zijn zwevendekommagetallen waarbij de cijfers na de punt van belang zijn. Het getal in hun naam (zoals16intf.float16) geeft het aantal bits aan dat wordt gebruikt.tf.float32wordt vaak gebruikt omdat het een goed evenwicht biedt tussen precisie en rekensnelheid; -
tf.int8,tf.int16,tf.int32,tf.int64: dit zijn gehele getallen, getallen zonder decimaal punt. Ze kunnen zowel positief als negatief zijn; -
tf.uint8,tf.uint16,tf.uint32,tf.uint64: de 'u' staat hier voor 'unsigned', wat betekent dat deze gehele getallen altijd niet-negatief zijn; -
tf.bool: vertegenwoordigt booleaanse waarden (TrueofFalse); -
tf.string: voor tekstuele data.
Voor gehele getallen geeft een hoger getal in de naam alleen een groter bereik aan waarden aan die kunnen worden opgeslagen. Maar voor zwevendekommagetallen duidt een hoger getal in de naam ook op een grotere rekenkundige nauwkeurigheid.
Er zijn meer gegevenstypen beschikbaar in TensorFlow, maar voor beginners is het belangrijk om eerst vertrouwd te raken met deze primaire typen. Voor een volledig overzicht van de door TensorFlow ondersteunde gegevenstypen, raadpleeg deze specifieke pagina in de TensorFlow-documentatie.
Het instellen van het datatype bij het aanmaken van een tensor
Bij het initialiseren van een tensor kan het type worden gespecificeerd met het argument dtype:
123456789101112import 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)
Veel tensor-creatiefuncties hanteren deze aanpak. Dit is van toepassing op methoden zoals tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform() en zelfs op tf.convert_to_tensor().
Converteren tussen gegevenstypen
Maar wat als de functie die je gebruikt geen directe specificatie van het gegevenstype toestaat? Of misschien heb je al een tensor van een bepaald type en moet je dit wijzigen. In deze gevallen moet je tensors van het ene gegevenstype naar het andere transformeren. Dit is vooral relevant omdat bepaalde neurale netwerkoperaties of -lagen vaak invoer van een specifiek type vereisen, meestal kommagetallen.
Je kunt hiervoor tf.cast() gebruiken:
123456789101112import 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)
Let op: bij het converteren van een kommagetaltype naar een integer-type voert TensorFlow een floor-operatie uit, waarbij het decimale gedeelte wordt weggelaten. Dus, 3.8 wordt 3 en -1.2 wordt -1.
Wees voorzichtig bij het wijzigen van gegevenstypen, vooral wanneer je overstapt naar een type met minder precisie. Er kan informatie verloren gaan tijdens dit proces.
Swipe to start coding
Uw taak is om een tensor van een specifiek gegevenstype te creëren en deze vervolgens naar een ander gegevenstype te converteren.
- Maak een tensor genaamd
initial_tensormet vorm(3, 3)met normaal verdeelde waarden. Zorg ervoor dat deze tensor een gegevenstype van 64-bits drijvende-kommawaarden heeft. - Zet de
initial_tensorom naar een tensor genaamdconverted_tensormet een gegevenstype van 16-bits drijvende-kommawaarden.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.