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 (som16
itf.float16
) angir antall biter som brukes.tf.float32
er 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 (True
ellerFalse
); -
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 viktig å 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 en tensor initialiseres, kan typen spesifiseres 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 funksjoner for opprettelse av tensorer 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
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 operasjoner eller lag i nevrale nettverk 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 når du endrer 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_tensor
med form(3, 3)
med normalfordelte verdier. Sørg for at denne tensoren har datatypen 64-bits flyttall. - Konverter
initial_tensor
til en tensor kaltconverted_tensor
med 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 5.56
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 (som16
itf.float16
) angir antall biter som brukes.tf.float32
er 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 (True
ellerFalse
); -
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 viktig å 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 en tensor initialiseres, kan typen spesifiseres 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 funksjoner for opprettelse av tensorer 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
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 operasjoner eller lag i nevrale nettverk 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 når du endrer 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_tensor
med form(3, 3)
med normalfordelte verdier. Sørg for at denne tensoren har datatypen 64-bits flyttall. - Konverter
initial_tensor
til en tensor kaltconverted_tensor
med datatypen 16-bits flyttall.
Løsning
Takk for tilbakemeldingene dine!
single