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 les textes 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 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 (comme16
danstf.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. Peuvent être positifs ou négatifs ; -
tf.uint8
,tf.uint16
,tf.uint32
,tf.uint64
: 'u' signifie 'unsigned' (non signé), ces entiers sont donc toujours positifs ; -
tf.bool
: représente des valeurs booléennes (True
ouFalse
) ; -
tf.string
: pour les données textuelles.
Pour les types entiers, un nombre plus élevé dans le nom indique simplement une plage de valeurs plus large pouvant être stockée. Pour les types à virgule flottante, un nombre plus élevé dans le nom indique également une précision de calcul supérieure.
Il existe davantage de 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
:
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)
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 les 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 peut-être possédez-vous déjà un tenseur d’un certain type et devez le modifier. 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.
La fonction tf.cast()
permet d’effectuer cette opération :
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)
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
.
Soyez vigilant lors du changement de types de données, en particulier lors du passage à un type avec moins de précision. Vous pourriez perdre des informations au cours du processus.
Swipe to start coding
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.
- Créez 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. - Transformez le
initial_tensor
en un tenseur appeléconverted_tensor
avec un type de données en virgule flottante 16 bits.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
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
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 les textes 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 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 (comme16
danstf.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. Peuvent être positifs ou négatifs ; -
tf.uint8
,tf.uint16
,tf.uint32
,tf.uint64
: 'u' signifie 'unsigned' (non signé), ces entiers sont donc toujours positifs ; -
tf.bool
: représente des valeurs booléennes (True
ouFalse
) ; -
tf.string
: pour les données textuelles.
Pour les types entiers, un nombre plus élevé dans le nom indique simplement une plage de valeurs plus large pouvant être stockée. Pour les types à virgule flottante, un nombre plus élevé dans le nom indique également une précision de calcul supérieure.
Il existe davantage de 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
:
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)
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 les 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 peut-être possédez-vous déjà un tenseur d’un certain type et devez le modifier. 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.
La fonction tf.cast()
permet d’effectuer cette opération :
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)
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
.
Soyez vigilant lors du changement de types de données, en particulier lors du passage à un type avec moins de précision. Vous pourriez perdre des informations au cours du processus.
Swipe to start coding
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.
- Créez 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. - Transformez le
initial_tensor
en un tenseur appeléconverted_tensor
avec un type de données en virgule flottante 16 bits.
Solution
Merci pour vos commentaires !
single