Datatyper
Datatyper
I denne delen vil du utforske konseptet datatyper i TensorFlow. På samme måte som programmeringsspråk kategoriserer tall og tekst i typer som heltall, flyttall eller strenger, har også tensorer i TensorFlow spesifikke typer.
Tilgjengelige datatyper i TensorFlow
TensorFlow støtter et bredt utvalg av datatyper for å håndtere ulike typer data og operasjoner. Noen av de mest brukte typene er:
-
tf.float16,tf.float32,tf.float64: dette er flyttall der sifrene etter desimaltegnet er viktige. Tallet i navnet (som16itf.float16) angir antall biter som brukes.tf.float32er ofte brukt fordi det gir en god balanse mellom presisjon og beregningshastighet; -
tf.int8,tf.int16,tf.int32,tf.int64: dette er heltallstyper, tall uten desimalpunktum. De kan være både positive og negative; -
tf.uint8,tf.uint16,tf.uint32,tf.uint64: 'u' står her for 'unsigned', noe som betyr at disse heltallene alltid er ikke-negative; -
tf.bool: representerer boolske verdier (TrueellerFalse); -
tf.string: for tekstdata.
For heltallstyper betyr et høyere tall i navnet kun et større verdiområde som kan lagres. For flyttallstyper indikerer et høyere tall i navnet også større beregningsnøyaktighet.
Det finnes flere datatyper tilgjengelig i TensorFlow, men for nybegynnere er det viktigst å bli kjent med disse grunnleggende typene først. For en fullstendig liste over datatyper som støttes av TensorFlow, se denne spesifikke siden i TensorFlow-dokumentasjonen.
Angi datatype ved opprettelse av tensor
Når du initialiserer en tensor, kan du spesifisere typen ved å bruke 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-opprettingsfunksjoner benytter denne tilnærmingen. Dette gjelder metoder som tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform(), og til og med tf.convert_to_tensor().
Konvertering mellom datatyper
Men hva om funksjonen du bruker ikke tillater direkte spesifisering av datatype? Eller kanskje du allerede har en tensor av en bestemt type og må endre den. I slike tilfeller må du transformere tensorer fra én datatype til en annen. Dette er spesielt relevant siden enkelte nevrale nettverksoperasjoner eller lag ofte krever input av en bestemt type, hovedsakelig flyttall.
Du kan bruke tf.cast() for å oppnå 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 at når du konverterer fra en flyttallstype til en heltallstype, vil TensorFlow utføre en gulvoperasjon, som i praksis fjerner desimaldelen. Dermed blir 3.8 til 3, og -1.2 til -1.
Vær oppmerksom ved endring av datatyper, spesielt når du går over til en type med lavere presisjon. Du kan miste informasjon i prosessen.
Swipe to start coding
Din oppgave er å opprette en tensor med en spesifikk datatypen og deretter konvertere den til en annen datatype.
- Opprett en tensor kalt
initial_tensormed form(3, 3)med normalfordelte verdier. Sørg for at denne tensoren har datatypen 64-bits flyttall. - Konverter
initial_tensortil en tensor kaltconverted_tensormed datatypen 16-bits flyttall.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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?
Awesome!
Completion rate improved to 6.25
Datatyper
Sveip for å vise menyen
Datatyper
I denne delen vil du utforske konseptet datatyper i TensorFlow. På samme måte som programmeringsspråk kategoriserer tall og tekst i typer som heltall, flyttall eller strenger, har også tensorer i TensorFlow spesifikke typer.
Tilgjengelige datatyper i TensorFlow
TensorFlow støtter et bredt utvalg av datatyper for å håndtere ulike typer data og operasjoner. Noen av de mest brukte typene er:
-
tf.float16,tf.float32,tf.float64: dette er flyttall der sifrene etter desimaltegnet er viktige. Tallet i navnet (som16itf.float16) angir antall biter som brukes.tf.float32er ofte brukt fordi det gir en god balanse mellom presisjon og beregningshastighet; -
tf.int8,tf.int16,tf.int32,tf.int64: dette er heltallstyper, tall uten desimalpunktum. De kan være både positive og negative; -
tf.uint8,tf.uint16,tf.uint32,tf.uint64: 'u' står her for 'unsigned', noe som betyr at disse heltallene alltid er ikke-negative; -
tf.bool: representerer boolske verdier (TrueellerFalse); -
tf.string: for tekstdata.
For heltallstyper betyr et høyere tall i navnet kun et større verdiområde som kan lagres. For flyttallstyper indikerer et høyere tall i navnet også større beregningsnøyaktighet.
Det finnes flere datatyper tilgjengelig i TensorFlow, men for nybegynnere er det viktigst å bli kjent med disse grunnleggende typene først. For en fullstendig liste over datatyper som støttes av TensorFlow, se denne spesifikke siden i TensorFlow-dokumentasjonen.
Angi datatype ved opprettelse av tensor
Når du initialiserer en tensor, kan du spesifisere typen ved å bruke 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-opprettingsfunksjoner benytter denne tilnærmingen. Dette gjelder metoder som tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform(), og til og med tf.convert_to_tensor().
Konvertering mellom datatyper
Men hva om funksjonen du bruker ikke tillater direkte spesifisering av datatype? Eller kanskje du allerede har en tensor av en bestemt type og må endre den. I slike tilfeller må du transformere tensorer fra én datatype til en annen. Dette er spesielt relevant siden enkelte nevrale nettverksoperasjoner eller lag ofte krever input av en bestemt type, hovedsakelig flyttall.
Du kan bruke tf.cast() for å oppnå 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 at når du konverterer fra en flyttallstype til en heltallstype, vil TensorFlow utføre en gulvoperasjon, som i praksis fjerner desimaldelen. Dermed blir 3.8 til 3, og -1.2 til -1.
Vær oppmerksom ved endring av datatyper, spesielt når du går over til en type med lavere presisjon. Du kan miste informasjon i prosessen.
Swipe to start coding
Din oppgave er å opprette en tensor med en spesifikk datatypen og deretter konvertere den til en annen datatype.
- Opprett en tensor kalt
initial_tensormed form(3, 3)med normalfordelte verdier. Sørg for at denne tensoren har datatypen 64-bits flyttall. - Konverter
initial_tensortil en tensor kaltconverted_tensormed datatypen 16-bits flyttall.
Løsning
Takk for tilbakemeldingene dine!
single