Tipi di Dati
Tipi di dati
In questa sezione, verrà esplorato il concetto di tipi di dati in TensorFlow. Analogamente a come i linguaggi di programmazione classificano numeri e testo in tipi come interi, float o stringhe, anche i tensori in TensorFlow hanno tipi specifici.
Tipi di dati disponibili in TensorFlow
TensorFlow supporta una vasta gamma di tipi di dati per gestire diverse tipologie di dati e operazioni. Alcuni dei tipi più comunemente utilizzati sono:
-
tf.float16,tf.float32,tf.float64: numeri in virgola mobile in cui contano le cifre dopo il punto decimale. Il numero nel nome (come16intf.float16) indica il numero di bit utilizzati.tf.float32è spesso usato perché offre un buon equilibrio tra precisione e velocità di calcolo; -
tf.int8,tf.int16,tf.int32,tf.int64: tipi interi, numeri senza punto decimale. Possono essere sia positivi che negativi; -
tf.uint8,tf.uint16,tf.uint32,tf.uint64: la 'u' indica 'unsigned' (senza segno), quindi questi interi sono sempre non negativi; -
tf.bool: rappresenta valori booleani (TrueoFalse); -
tf.string: per dati testuali.
Per i tipi interi, un numero maggiore nel nome indica solo una gamma di valori più ampia che può essere memorizzata. Ma per i tipi a virgola mobile, un numero più alto nel nome indica anche una maggiore precisione computazionale.
Sono disponibili altri tipi di dati in TensorFlow, ma per i principianti è fondamentale familiarizzare prima con questi tipi principali. Per un elenco completo dei tipi di dati supportati da TensorFlow, consulta questa pagina specifica nella documentazione di TensorFlow.
Impostazione del tipo di dato durante la creazione di un tensore
Quando si inizializza un tensore, è possibile specificarne il tipo utilizzando l'argomento 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)
Molte funzioni di creazione dei tensori adottano questo approccio. È applicabile in metodi come tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform() e anche in tf.convert_to_tensor().
Conversione tra tipi di dati
Ma cosa succede se la funzione che stai utilizzando non consente la specifica diretta del tipo di dato? Oppure possiedi già un tensore di un certo tipo e devi cambiarlo. In questi casi, sarà necessario trasformare i tensori da un tipo di dato a un altro. Questo è particolarmente rilevante poiché alcune operazioni o layer delle reti neurali richiedono spesso input di un tipo specifico, prevalentemente numeri in virgola mobile.
Puoi utilizzare tf.cast() per ottenere questo risultato:
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)
Ricorda che, durante la conversione da un tipo a virgola mobile a un tipo intero, TensorFlow esegue un'operazione di floor, eliminando la parte decimale. Quindi, 3.8 diventa 3 e -1.2 diventa -1.
Prestare attenzione durante il cambio di tipo di dato, soprattutto quando si passa a un tipo con minore precisione. Si potrebbe perdere delle informazioni durante il processo.
Grazie per i tuoi commenti!
single
Tipi di Dati
Scorri per mostrare il menu
Tipi di dati
In questa sezione, verrà esplorato il concetto di tipi di dati in TensorFlow. Analogamente a come i linguaggi di programmazione classificano numeri e testo in tipi come interi, float o stringhe, anche i tensori in TensorFlow hanno tipi specifici.
Tipi di dati disponibili in TensorFlow
TensorFlow supporta una vasta gamma di tipi di dati per gestire diverse tipologie di dati e operazioni. Alcuni dei tipi più comunemente utilizzati sono:
-
tf.float16,tf.float32,tf.float64: numeri in virgola mobile in cui contano le cifre dopo il punto decimale. Il numero nel nome (come16intf.float16) indica il numero di bit utilizzati.tf.float32è spesso usato perché offre un buon equilibrio tra precisione e velocità di calcolo; -
tf.int8,tf.int16,tf.int32,tf.int64: tipi interi, numeri senza punto decimale. Possono essere sia positivi che negativi; -
tf.uint8,tf.uint16,tf.uint32,tf.uint64: la 'u' indica 'unsigned' (senza segno), quindi questi interi sono sempre non negativi; -
tf.bool: rappresenta valori booleani (TrueoFalse); -
tf.string: per dati testuali.
Per i tipi interi, un numero maggiore nel nome indica solo una gamma di valori più ampia che può essere memorizzata. Ma per i tipi a virgola mobile, un numero più alto nel nome indica anche una maggiore precisione computazionale.
Sono disponibili altri tipi di dati in TensorFlow, ma per i principianti è fondamentale familiarizzare prima con questi tipi principali. Per un elenco completo dei tipi di dati supportati da TensorFlow, consulta questa pagina specifica nella documentazione di TensorFlow.
Impostazione del tipo di dato durante la creazione di un tensore
Quando si inizializza un tensore, è possibile specificarne il tipo utilizzando l'argomento 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)
Molte funzioni di creazione dei tensori adottano questo approccio. È applicabile in metodi come tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform() e anche in tf.convert_to_tensor().
Conversione tra tipi di dati
Ma cosa succede se la funzione che stai utilizzando non consente la specifica diretta del tipo di dato? Oppure possiedi già un tensore di un certo tipo e devi cambiarlo. In questi casi, sarà necessario trasformare i tensori da un tipo di dato a un altro. Questo è particolarmente rilevante poiché alcune operazioni o layer delle reti neurali richiedono spesso input di un tipo specifico, prevalentemente numeri in virgola mobile.
Puoi utilizzare tf.cast() per ottenere questo risultato:
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)
Ricorda che, durante la conversione da un tipo a virgola mobile a un tipo intero, TensorFlow esegue un'operazione di floor, eliminando la parte decimale. Quindi, 3.8 diventa 3 e -1.2 diventa -1.
Prestare attenzione durante il cambio di tipo di dato, soprattutto quando si passa a un tipo con minore precisione. Si potrebbe perdere delle informazioni durante il processo.
Scorri per iniziare a programmare
Il tuo compito è creare un tensore di uno specifico tipo di dato e poi convertirlo in un altro tipo di dato.
- Crea un tensore chiamato
initial_tensordi forma(3, 3)con valori distribuiti normalmente. Assicurati che questo tensore abbia un tipo di dato a virgola mobile a 64 bit. - Trasforma
initial_tensorin un tensore chiamatoconverted_tensorcon un tipo di dato a virgola mobile a 16 bit.
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione