Contenu du cours
Introduction à TensorFlow
Introduction à TensorFlow
Types de Données
Types de données
Bienvenue, explorateurs du royaume de TensorFlow ! La quête d'aujourd'hui consiste à naviguer dans le monde des types de données dans TensorFlow. Tout comme les nombres et le texte ont divers types dans les langages de programmation (comme les entiers, les flottants ou les chaînes de caractères), les tenseurs ont leur propre ensemble de types.
Types de données disponibles dans TensorFlow
TensorFlow prend en charge une pléthore de types de données pour répondre à différents types de données et opérations. Certains des types les plus couramment utilisés sont :
-
tf.float16
,tf.float32
,tf.float64
: Ce sont des nombres à virgule flottante où les chiffres après le point sont importants. Le nombre dans leur nom (comme16
danstf.float16
) vous indique le nombre de bits utilisés.tf.float32
est couramment utilisé car il offre un bon équilibre entre précision et vitesse de calcul ; -
tf.int8
,tf.int16
,tf.int32
,tf.int64
: Ce sont des types entiers, des nombres sans point décimal. Ils peuvent être à la fois positifs et négatifs ; -
tf.uint8
,tf.uint16
,tf.uint32
,tf.uint64
: 'u' ici signifie 'non signé', ce qui signifie que ces entiers sont toujours non négatifs ; -
tf.bool
: Représente des valeurs booléennes (True
ouFalse
) ; -
tf.string
: Pour les données textuelles.
Remarque
Pour les types entiers, un nombre plus grand dans le nom signifie seulement 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 plus grande précision de calcul.
Il existe plus de types de données disponibles dans TensorFlow, mais pour les débutants, il est crucial de se familiariser d'abord avec ces types principaux. Pour une liste complète des types de données pris en charge par TensorFlow, envisagez de consulter cette page spécifique dans la documentation TensorFlow.
Définir le type de données lors de la création d'un tenseur
Lorsque vous initialisez un tenseur, vous pouvez spécifier son type en utilisant l'argument dtype
:
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)
Remarque
De nombreuses fonctions de création de tenseurs adoptent cette approche. Elle est applicable dans des méthodes telles que
tf.Variable()
,tf.zeros()
,tf.ones()
,tf.random.normal()
,tf.random.uniform()
, et même danstf.convert_to_tensor()
.
Conversion entre les types de données
Mais que faire si la fonction que vous utilisez ne permet pas de spécification directe du type de données ? Ou peut-être possédez-vous déjà un tenseur d'un certain type et avez besoin de le changer. Dans ces cas, vous devrez transformer les tenseurs d'un type de données à un autre. Cela 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 y parvenir :
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, lors de la conversion d'un type à virgule flottante à un type entier, TensorFlow effectuera une opération de plancher, supprimant essentiellement la partie décimale. Ainsi, 3.8
devient 3
, et -1.2
devient -1
.
Remarque
Soyez prudent lors du changement de types de données, surtout lorsque vous passez à un type avec moins de précision. Vous pourriez perdre des informations dans le processus.
Swipe to start coding
Votre tâche consiste à créer un tenseur d'un type de données spécifique, puis à le convertir en un autre type de données.
- Créez un tenseur nommé
initial_tensor
de forme(3, 3)
avec des valeurs normalement distribuées. Assurez-vous que ce tenseur possède un type de données de valeurs à virgule flottante 64 bits. - Transformez le
initial_tensor
en un tenseur appeléconverted_tensor
avec un type de données de valeurs à virgule flottante 16 bits.
Solution
Merci pour vos commentaires !
Types de Données
Types de données
Bienvenue, explorateurs du royaume de TensorFlow ! La quête d'aujourd'hui consiste à naviguer dans le monde des types de données dans TensorFlow. Tout comme les nombres et le texte ont divers types dans les langages de programmation (comme les entiers, les flottants ou les chaînes de caractères), les tenseurs ont leur propre ensemble de types.
Types de données disponibles dans TensorFlow
TensorFlow prend en charge une pléthore de types de données pour répondre à différents types de données et opérations. Certains des types les plus couramment utilisés sont :
-
tf.float16
,tf.float32
,tf.float64
: Ce sont des nombres à virgule flottante où les chiffres après le point sont importants. Le nombre dans leur nom (comme16
danstf.float16
) vous indique le nombre de bits utilisés.tf.float32
est couramment utilisé car il offre un bon équilibre entre précision et vitesse de calcul ; -
tf.int8
,tf.int16
,tf.int32
,tf.int64
: Ce sont des types entiers, des nombres sans point décimal. Ils peuvent être à la fois positifs et négatifs ; -
tf.uint8
,tf.uint16
,tf.uint32
,tf.uint64
: 'u' ici signifie 'non signé', ce qui signifie que ces entiers sont toujours non négatifs ; -
tf.bool
: Représente des valeurs booléennes (True
ouFalse
) ; -
tf.string
: Pour les données textuelles.
Remarque
Pour les types entiers, un nombre plus grand dans le nom signifie seulement 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 plus grande précision de calcul.
Il existe plus de types de données disponibles dans TensorFlow, mais pour les débutants, il est crucial de se familiariser d'abord avec ces types principaux. Pour une liste complète des types de données pris en charge par TensorFlow, envisagez de consulter cette page spécifique dans la documentation TensorFlow.
Définir le type de données lors de la création d'un tenseur
Lorsque vous initialisez un tenseur, vous pouvez spécifier son type en utilisant l'argument dtype
:
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)
Remarque
De nombreuses fonctions de création de tenseurs adoptent cette approche. Elle est applicable dans des méthodes telles que
tf.Variable()
,tf.zeros()
,tf.ones()
,tf.random.normal()
,tf.random.uniform()
, et même danstf.convert_to_tensor()
.
Conversion entre les types de données
Mais que faire si la fonction que vous utilisez ne permet pas de spécification directe du type de données ? Ou peut-être possédez-vous déjà un tenseur d'un certain type et avez besoin de le changer. Dans ces cas, vous devrez transformer les tenseurs d'un type de données à un autre. Cela 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 y parvenir :
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, lors de la conversion d'un type à virgule flottante à un type entier, TensorFlow effectuera une opération de plancher, supprimant essentiellement la partie décimale. Ainsi, 3.8
devient 3
, et -1.2
devient -1
.
Remarque
Soyez prudent lors du changement de types de données, surtout lorsque vous passez à un type avec moins de précision. Vous pourriez perdre des informations dans le processus.
Swipe to start coding
Votre tâche consiste à créer un tenseur d'un type de données spécifique, puis à le convertir en un autre type de données.
- Créez un tenseur nommé
initial_tensor
de forme(3, 3)
avec des valeurs normalement distribuées. Assurez-vous que ce tenseur possède un type de données de valeurs à virgule flottante 64 bits. - Transformez le
initial_tensor
en un tenseur appeléconverted_tensor
avec un type de données de valeurs à virgule flottante 16 bits.
Solution
Merci pour vos commentaires !