Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Datatyper | Tensorer
Introduktion til Tensorflow

bookDatatyper

Datatyper

I denne sektion vil du udforske begrebet datatyper i TensorFlow. Ligesom programmeringssprog kategoriserer tal og tekst i typer så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 for at imødekomme forskellige typer data og operationer. Nogle af de mest anvendte typer er:

  • tf.float16, tf.float32, tf.float64: disse er flydende tal, hvor cifrene efter punktummet har betydning. Tallet i navnet (som 16 i tf.float16) angiver antallet af bits der bruges. tf.float32 anvendes ofte, da det giver en god balance mellem præcision og beregningshastighed;

  • tf.int8, tf.int16, tf.int32, tf.int64: disse er heltalstyper, tal uden decimalpunktum. 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 (True eller False);

  • tf.string: til tekstdata.

Note
Bemærk

For heltalstyper betyder et større tal i navnet blot et bredere interval af værdier, den kan lagre. For flydende taltyper 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, henvises til denne specifikke side i TensorFlow-dokumentationen.

Angivelse af datatype ved oprettelse af en tensor

Når en tensor initialiseres, kan typen specificeres ved hjælp af argumentet dtype:

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
Bemærk

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 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, primært flydende tal.

Du kan bruge tf.cast() til dette:

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

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.

Note
Bemærk

Vær forsigtig, når du ændrer datatyper, især når du skifter til en type med lavere præcision. Du kan miste information under processen.

Opgave

Swipe to start coding

Din opgave er at oprette en tensor med en specifik datatype og derefter konvertere den til en anden datatype.

  1. Opret en tensor ved navn initial_tensor med formen (3, 3) med normalfordelte værdier. Sørg for, at denne tensor har datatypen 64-bit flydende tal.
  2. Transformér initial_tensor til en tensor kaldet converted_tensor med datatypen 16-bit flydende tal.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 7
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

close

Awesome!

Completion rate improved to 5.56

bookDatatyper

Stryg for at vise menuen

Datatyper

I denne sektion vil du udforske begrebet datatyper i TensorFlow. Ligesom programmeringssprog kategoriserer tal og tekst i typer så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 for at imødekomme forskellige typer data og operationer. Nogle af de mest anvendte typer er:

  • tf.float16, tf.float32, tf.float64: disse er flydende tal, hvor cifrene efter punktummet har betydning. Tallet i navnet (som 16 i tf.float16) angiver antallet af bits der bruges. tf.float32 anvendes ofte, da det giver en god balance mellem præcision og beregningshastighed;

  • tf.int8, tf.int16, tf.int32, tf.int64: disse er heltalstyper, tal uden decimalpunktum. 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 (True eller False);

  • tf.string: til tekstdata.

Note
Bemærk

For heltalstyper betyder et større tal i navnet blot et bredere interval af værdier, den kan lagre. For flydende taltyper 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, henvises til denne specifikke side i TensorFlow-dokumentationen.

Angivelse af datatype ved oprettelse af en tensor

Når en tensor initialiseres, kan typen specificeres ved hjælp af argumentet dtype:

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
Bemærk

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 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, primært flydende tal.

Du kan bruge tf.cast() til dette:

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

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.

Note
Bemærk

Vær forsigtig, når du ændrer datatyper, især når du skifter til en type med lavere præcision. Du kan miste information under processen.

Opgave

Swipe to start coding

Din opgave er at oprette en tensor med en specifik datatype og derefter konvertere den til en anden datatype.

  1. Opret en tensor ved navn initial_tensor med formen (3, 3) med normalfordelte værdier. Sørg for, at denne tensor har datatypen 64-bit flydende tal.
  2. Transformér initial_tensor til en tensor kaldet converted_tensor med datatypen 16-bit flydende tal.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 7
single

single

some-alt