Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Tipi di Dati | Tensori
Quizzes & Challenges
Quizzes
Challenges
/
Introduzione a TensorFlow

bookTipi 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 possiedono tipi specifici.

Tipi di Dati Disponibili in TensorFlow

TensorFlow supporta una vasta gamma di tipi di dati per soddisfare diverse tipologie di dati e operazioni. Alcuni dei tipi più comunemente utilizzati sono:

  • tf.float16, tf.float32, tf.float64: rappresentano numeri in virgola mobile, dove contano le cifre dopo il punto decimale. Il numero nel nome (come 16 in tf.float16) indica il numero di bit utilizzati. tf.float32 è comunemente usato perché offre un buon equilibrio tra precisione e velocità di calcolo;

  • tf.int8, tf.int16, tf.int32, tf.int64: rappresentano tipi interi, numeri senza parte decimale. Possono essere sia positivi che negativi;

  • tf.uint8, tf.uint16, tf.uint32, tf.uint64: la 'u' indica 'unsigned' (senza segno), ovvero questi interi sono sempre non negativi;

  • tf.bool: rappresenta valori booleani (True o False);

  • tf.string: per dati testuali.

Note
Nota

Per i tipi interi, un numero maggiore nel nome indica solo un intervallo di valori più ampio che può essere memorizzato. Per i tipi in virgola mobile, invece, 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, si consiglia di consultare 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:

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
Nota

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 persino in tf.convert_to_tensor().

Conversione tra tipi di dati

Ma cosa succede se la funzione utilizzata non consente la specifica diretta del tipo di dato? Oppure si possiede già un tensore di un certo tipo e si ha la necessità di cambiarlo. In questi casi, è 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.

È possibile utilizzare tf.cast() per ottenere questo risultato:

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

Ricorda che, durante la conversione da un tipo a virgola mobile a un tipo intero, TensorFlow esegue un'operazione di floor, eliminando essenzialmente la parte decimale. Quindi, 3.8 diventa 3 e -1.2 diventa -1.

Note
Nota

Prestare attenzione durante la modifica dei tipi di dati, soprattutto quando si passa a un tipo con minore precisione. Si potrebbero perdere informazioni durante il processo.

Compito

Swipe to start coding

Il tuo compito è creare un tensore di uno specifico tipo di dato e poi convertirlo in un altro tipo di dato.

  1. Crea un tensore chiamato initial_tensor di forma (3, 3) con valori distribuiti normalmente. Assicurati che questo tensore abbia un tipo di dato a virgola mobile a 64 bit.
  2. Trasforma initial_tensor in un tensore chiamato converted_tensor con un tipo di dato a virgola mobile a 16 bit.

Soluzione

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 7
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

close

Awesome!

Completion rate improved to 6.25

bookTipi 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 possiedono tipi specifici.

Tipi di Dati Disponibili in TensorFlow

TensorFlow supporta una vasta gamma di tipi di dati per soddisfare diverse tipologie di dati e operazioni. Alcuni dei tipi più comunemente utilizzati sono:

  • tf.float16, tf.float32, tf.float64: rappresentano numeri in virgola mobile, dove contano le cifre dopo il punto decimale. Il numero nel nome (come 16 in tf.float16) indica il numero di bit utilizzati. tf.float32 è comunemente usato perché offre un buon equilibrio tra precisione e velocità di calcolo;

  • tf.int8, tf.int16, tf.int32, tf.int64: rappresentano tipi interi, numeri senza parte decimale. Possono essere sia positivi che negativi;

  • tf.uint8, tf.uint16, tf.uint32, tf.uint64: la 'u' indica 'unsigned' (senza segno), ovvero questi interi sono sempre non negativi;

  • tf.bool: rappresenta valori booleani (True o False);

  • tf.string: per dati testuali.

Note
Nota

Per i tipi interi, un numero maggiore nel nome indica solo un intervallo di valori più ampio che può essere memorizzato. Per i tipi in virgola mobile, invece, 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, si consiglia di consultare 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:

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
Nota

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 persino in tf.convert_to_tensor().

Conversione tra tipi di dati

Ma cosa succede se la funzione utilizzata non consente la specifica diretta del tipo di dato? Oppure si possiede già un tensore di un certo tipo e si ha la necessità di cambiarlo. In questi casi, è 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.

È possibile utilizzare tf.cast() per ottenere questo risultato:

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

Ricorda che, durante la conversione da un tipo a virgola mobile a un tipo intero, TensorFlow esegue un'operazione di floor, eliminando essenzialmente la parte decimale. Quindi, 3.8 diventa 3 e -1.2 diventa -1.

Note
Nota

Prestare attenzione durante la modifica dei tipi di dati, soprattutto quando si passa a un tipo con minore precisione. Si potrebbero perdere informazioni durante il processo.

Compito

Swipe to start coding

Il tuo compito è creare un tensore di uno specifico tipo di dato e poi convertirlo in un altro tipo di dato.

  1. Crea un tensore chiamato initial_tensor di forma (3, 3) con valori distribuiti normalmente. Assicurati che questo tensore abbia un tipo di dato a virgola mobile a 64 bit.
  2. Trasforma initial_tensor in un tensore chiamato converted_tensor con un tipo di dato a virgola mobile a 16 bit.

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 7
single

single

some-alt