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

bookDatatyper

Datatyper

I det här avsnittet utforskas begreppet datatyper i TensorFlow. Precis som programmeringsspråk kategoriserar siffror och text i typer som heltal, flyttal eller strängar, har tensorer i TensorFlow också specifika typer.

Tillgängliga datatyper i TensorFlow

TensorFlow stöder ett stort antal datatyper för att hantera olika typer av data och operationer. Några av de mest använda typerna är:

  • tf.float16, tf.float32, tf.float64: dessa är flyttal där siffrorna efter decimaltecknet är viktiga. Siffran i namnet (som 16 i tf.float16) anger antalet bitar som används. tf.float32 används ofta eftersom den ger en bra balans mellan precision och beräkningshastighet;

  • tf.int8, tf.int16, tf.int32, tf.int64: dessa är heltalstyper, siffror utan decimaltecken. De kan vara både positiva och negativa;

  • tf.uint8, tf.uint16, tf.uint32, tf.uint64: 'u' står här för 'unsigned', vilket innebär att dessa heltal alltid är icke-negativa;

  • tf.bool: representerar booleska värden (True eller False);

  • tf.string: för textdata.

Note
Notera

För heltalstyper innebär ett högre tal i namnet endast ett större värdeintervall som kan lagras. För flyttalstyper indikerar ett högre tal i namnet även högre beräkningsnoggrannhet.

Det finns fler datatyper tillgängliga i TensorFlow, men för nybörjare är det viktigt att först bekanta sig med dessa primära typer. För en fullständig lista över datatyper som stöds av TensorFlow, se gärna denna specifika sida i TensorFlow-dokumentationen.

Ange datatyp vid skapande av tensor

Vid initiering av en tensor kan du specificera dess typ med 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
Observera

Många tensor-skapandefunktioner använder detta tillvägagångssätt. Det gäller metoder som tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform() och även tf.convert_to_tensor().

Konvertering mellan datatyper

Men vad händer om funktionen du använder inte tillåter direkt specifikation av datatyp? Eller kanske har du redan en tensor av en viss typ och behöver ändra den. I dessa fall måste du transformera tensorer från en datatyp till en annan. Detta är särskilt relevant eftersom vissa neurala nätverksoperationer eller lager ofta kräver indata av en viss typ, främst flyttal.

Du kan använda tf.cast() för att uppnå detta:

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

Kom ihåg att vid konvertering från ett flyttal till en heltalstyp utför TensorFlow en golvoperation, vilket innebär att decimaldelen tas bort. Så 3.8 blir 3 och -1.2 blir -1.

Note
Notera

Var försiktig vid byte av datatyper, särskilt när du byter till en typ med lägre precision. Du kan förlora information i processen.

Uppgift

Swipe to start coding

Din uppgift är att skapa en tensor av en specifik datatyp och sedan konvertera den till en annan datatyp.

  1. Skapa en tensor med namnet initial_tensor med formen (3, 3) och normalfördelade värden. Säkerställ att denna tensor har datatypen 64-bitars flyttal.
  2. Omvandla initial_tensor till en tensor kallad converted_tensor med datatypen 16-bitars flyttal.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 7
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

Awesome!

Completion rate improved to 5.56

bookDatatyper

Svep för att visa menyn

Datatyper

I det här avsnittet utforskas begreppet datatyper i TensorFlow. Precis som programmeringsspråk kategoriserar siffror och text i typer som heltal, flyttal eller strängar, har tensorer i TensorFlow också specifika typer.

Tillgängliga datatyper i TensorFlow

TensorFlow stöder ett stort antal datatyper för att hantera olika typer av data och operationer. Några av de mest använda typerna är:

  • tf.float16, tf.float32, tf.float64: dessa är flyttal där siffrorna efter decimaltecknet är viktiga. Siffran i namnet (som 16 i tf.float16) anger antalet bitar som används. tf.float32 används ofta eftersom den ger en bra balans mellan precision och beräkningshastighet;

  • tf.int8, tf.int16, tf.int32, tf.int64: dessa är heltalstyper, siffror utan decimaltecken. De kan vara både positiva och negativa;

  • tf.uint8, tf.uint16, tf.uint32, tf.uint64: 'u' står här för 'unsigned', vilket innebär att dessa heltal alltid är icke-negativa;

  • tf.bool: representerar booleska värden (True eller False);

  • tf.string: för textdata.

Note
Notera

För heltalstyper innebär ett högre tal i namnet endast ett större värdeintervall som kan lagras. För flyttalstyper indikerar ett högre tal i namnet även högre beräkningsnoggrannhet.

Det finns fler datatyper tillgängliga i TensorFlow, men för nybörjare är det viktigt att först bekanta sig med dessa primära typer. För en fullständig lista över datatyper som stöds av TensorFlow, se gärna denna specifika sida i TensorFlow-dokumentationen.

Ange datatyp vid skapande av tensor

Vid initiering av en tensor kan du specificera dess typ med 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
Observera

Många tensor-skapandefunktioner använder detta tillvägagångssätt. Det gäller metoder som tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform() och även tf.convert_to_tensor().

Konvertering mellan datatyper

Men vad händer om funktionen du använder inte tillåter direkt specifikation av datatyp? Eller kanske har du redan en tensor av en viss typ och behöver ändra den. I dessa fall måste du transformera tensorer från en datatyp till en annan. Detta är särskilt relevant eftersom vissa neurala nätverksoperationer eller lager ofta kräver indata av en viss typ, främst flyttal.

Du kan använda tf.cast() för att uppnå detta:

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

Kom ihåg att vid konvertering från ett flyttal till en heltalstyp utför TensorFlow en golvoperation, vilket innebär att decimaldelen tas bort. Så 3.8 blir 3 och -1.2 blir -1.

Note
Notera

Var försiktig vid byte av datatyper, särskilt när du byter till en typ med lägre precision. Du kan förlora information i processen.

Uppgift

Swipe to start coding

Din uppgift är att skapa en tensor av en specifik datatyp och sedan konvertera den till en annan datatyp.

  1. Skapa en tensor med namnet initial_tensor med formen (3, 3) och normalfördelade värden. Säkerställ att denna tensor har datatypen 64-bitars flyttal.
  2. Omvandla initial_tensor till en tensor kallad converted_tensor med datatypen 16-bitars flyttal.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 7
single

single

some-alt