Datatyper
Datatyper
I dette afsnit udforskes begrebet datatyper i TensorFlow. Ligesom programmeringssprog kategoriserer tal og tekst i typer som heltal, flydende tal eller strenge, har tensorer i TensorFlow også specifikke typer.
Tilgængelige datatyper i TensorFlow
TensorFlow understøtter et væld af datatyper til forskellige slags data og operationer. Nogle af de mest anvendte typer er:
-
tf.float16,tf.float32,tf.float64: flydende tal, hvor cifrene efter kommaet har betydning. Tallet i navnet (som16itf.float16) angiver antal bits.tf.float32bruges ofte, da det giver en god balance mellem præcision og beregningshastighed; -
tf.int8,tf.int16,tf.int32,tf.int64: heltalstyper, tal uden decimaler. De kan være både positive og negative; -
tf.uint8,tf.uint16,tf.uint32,tf.uint64: 'u' står her for 'unsigned', hvilket betyder, at disse heltal altid er ikke-negative; -
tf.bool: repræsenterer booleske værdier (TrueellerFalse); -
tf.string: til tekstdata.
For heltalstyper betyder et større tal i navnet kun et bredere interval af værdier, som den kan gemme. Men for flydetyper angiver et højere tal i navnet også større beregningsnøjagtighed.
Der findes flere datatyper i TensorFlow, men for begyndere er det vigtigt først at blive fortrolig med disse primære typer. For en komplet liste over datatyper, der understøttes af TensorFlow, kan du se denne specifikke side i TensorFlow-dokumentationen.
Angivelse af datatype ved oprettelse af en tensor
Når du initialiserer en tensor, kan du angive dens type ved hjælp af argumentet 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)
Mange tensor-oprettelsesfunktioner anvender denne tilgang. Det gælder for metoder som tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform() og endda i tf.convert_to_tensor().
Konvertering mellem datatyper
Men hvad hvis den funktion, du bruger, ikke tillader direkte angivelse af datatype? Eller måske har du allerede en tensor af en bestemt type og skal ændre den. I disse tilfælde skal du transformere tensorer fra én datatype til en anden. Dette er især relevant, da visse neurale netværksoperationer eller lag ofte kræver input af en bestemt type, hovedsageligt flydende tal.
Du kan bruge tf.cast() til dette:
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)
Husk, når du konverterer fra en flydende datatypen til en heltalsdatatypen, vil TensorFlow udføre en floor-operation, hvilket betyder at decimaldelen fjernes. Så 3.8 bliver til 3, og -1.2 bliver til -1.
Vær opmærksom ved ændring af datatyper, især når du skifter til en type med lavere præcision. Du kan miste information under processen.
Tak for dine kommentarer!
single
Datatyper
Stryg for at vise menuen
Datatyper
I dette afsnit udforskes begrebet datatyper i TensorFlow. Ligesom programmeringssprog kategoriserer tal og tekst i typer som heltal, flydende tal eller strenge, har tensorer i TensorFlow også specifikke typer.
Tilgængelige datatyper i TensorFlow
TensorFlow understøtter et væld af datatyper til forskellige slags data og operationer. Nogle af de mest anvendte typer er:
-
tf.float16,tf.float32,tf.float64: flydende tal, hvor cifrene efter kommaet har betydning. Tallet i navnet (som16itf.float16) angiver antal bits.tf.float32bruges ofte, da det giver en god balance mellem præcision og beregningshastighed; -
tf.int8,tf.int16,tf.int32,tf.int64: heltalstyper, tal uden decimaler. De kan være både positive og negative; -
tf.uint8,tf.uint16,tf.uint32,tf.uint64: 'u' står her for 'unsigned', hvilket betyder, at disse heltal altid er ikke-negative; -
tf.bool: repræsenterer booleske værdier (TrueellerFalse); -
tf.string: til tekstdata.
For heltalstyper betyder et større tal i navnet kun et bredere interval af værdier, som den kan gemme. Men for flydetyper angiver et højere tal i navnet også større beregningsnøjagtighed.
Der findes flere datatyper i TensorFlow, men for begyndere er det vigtigt først at blive fortrolig med disse primære typer. For en komplet liste over datatyper, der understøttes af TensorFlow, kan du se denne specifikke side i TensorFlow-dokumentationen.
Angivelse af datatype ved oprettelse af en tensor
Når du initialiserer en tensor, kan du angive dens type ved hjælp af argumentet 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)
Mange tensor-oprettelsesfunktioner anvender denne tilgang. Det gælder for metoder som tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform() og endda i tf.convert_to_tensor().
Konvertering mellem datatyper
Men hvad hvis den funktion, du bruger, ikke tillader direkte angivelse af datatype? Eller måske har du allerede en tensor af en bestemt type og skal ændre den. I disse tilfælde skal du transformere tensorer fra én datatype til en anden. Dette er især relevant, da visse neurale netværksoperationer eller lag ofte kræver input af en bestemt type, hovedsageligt flydende tal.
Du kan bruge tf.cast() til dette:
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)
Husk, når du konverterer fra en flydende datatypen til en heltalsdatatypen, vil TensorFlow udføre en floor-operation, hvilket betyder at decimaldelen fjernes. Så 3.8 bliver til 3, og -1.2 bliver til -1.
Vær opmærksom ved ændring af datatyper, især når du skifter til en type med lavere præcision. Du kan miste information under processen.
Swipe to start coding
Din opgave er at oprette en tensor med en bestemt datatype og derefter konvertere den til en anden datatype.
- Opret en tensor med navnet
initial_tensormed formen(3, 3)og normalt fordelte værdier. Sørg for, at denne tensor har datatypen 64-bit flydende tal. - Transformér
initial_tensortil en tensor kaldetconverted_tensormed datatypen 16-bit flydende tal.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat