Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Types de Données | Tenseurs
Introduction à TensorFlow

Types de Données

Types de données

Dans cette section, exploration du concept de types de données dans TensorFlow. De la même manière que les langages de programmation classent les nombres et le texte en types tels qu'entiers, flottants ou chaînes de caractères, les tenseurs dans TensorFlow possèdent également des types spécifiques.

Types de données disponibles dans TensorFlow

TensorFlow prend en charge une multitude de types de données pour répondre à différents types de données et d'opérations. Parmi les types les plus couramment utilisés :

  • tf.float16, tf.float32, tf.float64 : nombres à virgule flottante où les chiffres après la virgule sont importants. Le nombre dans leur nom (comme 16 dans tf.float16) indique le nombre de bits utilisés. tf.float32 est fréquemment utilisé car il offre un bon équilibre entre précision et vitesse de calcul ;

  • tf.int8, tf.int16, tf.int32, tf.int64 : types entiers, nombres sans virgule décimale. Ils peuvent être positifs ou négatifs ;

  • tf.uint8, tf.uint16, tf.uint32, tf.uint64 : 'u' signifie 'unsigned' (non signé), ce qui indique que ces entiers sont toujours positifs ;

  • tf.bool : valeurs booléennes (True ou False) ;

  • tf.string : pour les données textuelles.

Note
Remarque

Pour les types entiers, un nombre plus élevé dans le nom signifie simplement une plage de valeurs plus large qu'il peut stocker. Mais pour les types à virgule flottante, un nombre plus élevé dans le nom indique également une précision de calcul supérieure.

Il existe d'autres types de données disponibles dans TensorFlow, mais pour les débutants, il est essentiel de se familiariser d'abord avec ces types principaux. Pour une liste complète des types de données pris en charge par TensorFlow, consultez cette page spécifique dans la documentation TensorFlow.

Définition du type de données lors de la création d'un tenseur

Lors de l'initialisation d'un tenseur, il est possible de spécifier son type à l'aide de l'argument 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)
Note
Remarque

De nombreuses fonctions de création de tenseurs adoptent cette approche. Elle s'applique dans des méthodes telles que tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform(), et même dans tf.convert_to_tensor().

Conversion entre types de données

Mais que faire si la fonction utilisée ne permet pas la spécification directe du type de données ? Ou si vous possédez déjà un tenseur d'un certain type et que vous devez le changer ? Dans ces cas, il est nécessaire de transformer les tenseurs d'un type de données à un autre. Ceci est particulièrement pertinent car certaines opérations ou couches de réseaux neuronaux exigent souvent des entrées d'un type particulier, principalement des nombres à virgule flottante.

Vous pouvez utiliser tf.cast() pour cela :

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)

Rappelez-vous que lors de la conversion d'un type à virgule flottante vers un type entier, TensorFlow effectue une opération d'arrondi inférieur, supprimant essentiellement la partie décimale. Ainsi, 3.8 devient 3, et -1.2 devient -1.

Note
Remarque

Faire preuve de prudence lors du changement de type de données, en particulier lors du passage à un type avec moins de précision. Des pertes d'information peuvent survenir lors de ce processus.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 7
single

single

Types de Données

Glissez pour afficher le menu

Types de données

Dans cette section, exploration du concept de types de données dans TensorFlow. De la même manière que les langages de programmation classent les nombres et le texte en types tels qu'entiers, flottants ou chaînes de caractères, les tenseurs dans TensorFlow possèdent également des types spécifiques.

Types de données disponibles dans TensorFlow

TensorFlow prend en charge une multitude de types de données pour répondre à différents types de données et d'opérations. Parmi les types les plus couramment utilisés :

  • tf.float16, tf.float32, tf.float64 : nombres à virgule flottante où les chiffres après la virgule sont importants. Le nombre dans leur nom (comme 16 dans tf.float16) indique le nombre de bits utilisés. tf.float32 est fréquemment utilisé car il offre un bon équilibre entre précision et vitesse de calcul ;

  • tf.int8, tf.int16, tf.int32, tf.int64 : types entiers, nombres sans virgule décimale. Ils peuvent être positifs ou négatifs ;

  • tf.uint8, tf.uint16, tf.uint32, tf.uint64 : 'u' signifie 'unsigned' (non signé), ce qui indique que ces entiers sont toujours positifs ;

  • tf.bool : valeurs booléennes (True ou False) ;

  • tf.string : pour les données textuelles.

Note
Remarque

Pour les types entiers, un nombre plus élevé dans le nom signifie simplement une plage de valeurs plus large qu'il peut stocker. Mais pour les types à virgule flottante, un nombre plus élevé dans le nom indique également une précision de calcul supérieure.

Il existe d'autres types de données disponibles dans TensorFlow, mais pour les débutants, il est essentiel de se familiariser d'abord avec ces types principaux. Pour une liste complète des types de données pris en charge par TensorFlow, consultez cette page spécifique dans la documentation TensorFlow.

Définition du type de données lors de la création d'un tenseur

Lors de l'initialisation d'un tenseur, il est possible de spécifier son type à l'aide de l'argument 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)
Note
Remarque

De nombreuses fonctions de création de tenseurs adoptent cette approche. Elle s'applique dans des méthodes telles que tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform(), et même dans tf.convert_to_tensor().

Conversion entre types de données

Mais que faire si la fonction utilisée ne permet pas la spécification directe du type de données ? Ou si vous possédez déjà un tenseur d'un certain type et que vous devez le changer ? Dans ces cas, il est nécessaire de transformer les tenseurs d'un type de données à un autre. Ceci est particulièrement pertinent car certaines opérations ou couches de réseaux neuronaux exigent souvent des entrées d'un type particulier, principalement des nombres à virgule flottante.

Vous pouvez utiliser tf.cast() pour cela :

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)

Rappelez-vous que lors de la conversion d'un type à virgule flottante vers un type entier, TensorFlow effectue une opération d'arrondi inférieur, supprimant essentiellement la partie décimale. Ainsi, 3.8 devient 3, et -1.2 devient -1.

Note
Remarque

Faire preuve de prudence lors du changement de type de données, en particulier lors du passage à un type avec moins de précision. Des pertes d'information peuvent survenir lors de ce processus.

Tâche

Glissez pour commencer à coder

Votre tâche consiste à créer un tenseur d'un type de données spécifique, puis à le convertir dans un autre type de données.

  1. Créer un tenseur nommé initial_tensor de forme (3, 3) avec des valeurs distribuées normalement. Assurez-vous que ce tenseur possède un type de données en virgule flottante 64 bits.
  2. Transformer le initial_tensor en un tenseur appelé converted_tensor avec un type de données en virgule flottante 16 bits.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 7
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

some-alt