Creazione di Tensori
Creazione di Tensors
Questa lezione si concentra sulla creazione di tensori utilizzando TensorFlow. TensorFlow offre numerosi metodi per inizializzare i tensori. Al termine di questa lezione, sarai in grado di generare tensori per un'ampia gamma di applicazioni.
Inizializzatori di Tensor di Base
tf.constant(): questo è il modo più semplice per creare un tensore. Come suggerisce il nome, i tensori inizializzati con questo metodo contengono valori costanti e sono immutabili;
12345import tensorflow as tf # Create a 2x2 constant tensor tensor_const = tf.constant([[1, 2], [3, 4]]) print(tensor_const)
tf.Variable(): a differenza ditf.constant(), un tensore definito utilizzandotf.Variable()è mutabile. Questo significa che il suo valore può essere modificato, rendendolo ideale per parametri addestrabili nei modelli;
12345import tensorflow as tf # Create a variable tensor tensor_var = tf.Variable([[1, 2], [3, 4]]) print(tensor_var)
tf.zeros(): crea un tensore riempito di zeri;
12345import tensorflow as tf # Zero tensor of shape (3, 3) tensor_zeros = tf.zeros((3, 3)) print(tensor_zeros)
tf.ones(): al contrario, crea un tensore riempito di uno;
12345import tensorflow as tf # Ones tensor of shape (2, 2) tensor_ones = tf.ones((2, 2)) print(tensor_ones)
tf.fill(): crea un tensore riempito con un valore specifico;
12345import tensorflow as tf # Tensor of shape (2, 2) filled with 6 tensor_fill = tf.fill((2, 2), 6) print(tensor_fill)
tf.linspace()etf.range(): strumenti ideali per creare sequenze;
123456789import tensorflow as tf # Generate a sequence of numbers starting from 0, ending at 9 tensor_range = tf.range(10) print(tensor_range) # Create 5 equally spaced values between 0 and 10 tensor_linspace = tf.linspace(0, 10, 5) print(tensor_linspace)
tf.random: genera tensori con valori casuali. Sono disponibili diverse distribuzioni e funzioni all'interno di questo modulo, cometf.random.normal()per valori da una distribuzione normale etf.random.uniform()per valori da una distribuzione uniforme.
È possibile anche impostare un seed fisso per ottenere risultati coerenti a ogni generazione di numeri casuali utilizzando tf.random.set_seed(). Tuttavia, si noti che in questo modo si otterrà lo stesso numero per qualsiasi generazione casuale all'interno di TensorFlow.
Se si desidera ottenere numeri coerenti solo per un comando specifico, è possibile fornire un argomento seed a quel comando con il valore di seed desiderato.
1234567891011121314import tensorflow as tf # Set random seed tf.random.set_seed(72) # Tensor of shape (2, 2) with random values normally distributed # (by default `mean=0` and `std=1`) tensor_random = tf.random.normal((2, 2), mean=4, stddev=0.5) print(tensor_random) # Tensor of shape (2, 2) with random values uniformly distributed # (by default `min=0` and `max=1`) tensor_random = tf.random.uniform((2, 2), minval=-2, maxval=2) print(tensor_random)
Conversione tra strutture dati
I tensori di TensorFlow possono essere convertiti facilmente da e verso le strutture dati Python più comuni.
- Da array Numpy: I tensori TensorFlow e gli array Numpy sono altamente interoperabili. Utilizzare
tf.convert_to_tensor();
12345678910import numpy as np import tensorflow as tf # Create a NumPy array based on a Python list numpy_array = np.array([[1, 2], [3, 4]]) # Convert a NumPy array to a tensor tensor_from_np = tf.convert_to_tensor(numpy_array) print(tensor_from_np)
- Da Pandas DataFrame: per chi preferisce l'analisi dei dati con Pandas, convertire un DataFrame o una Series in un tensore TensorFlow è semplice. Utilizzare anche
tf.convert_to_tensor();
12345678910import pandas as pd import tensorflow as tf # Create a DataFrame based on dictionary df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) # Convert a DataFrame to a tensor tensor_from_df = tf.convert_to_tensor(df.values) print(tensor_from_df)
Assicurarsi sempre che i tipi di dati delle strutture originali (array Numpy o Pandas DataFrame) siano compatibili con i tipi di dati dei tensori TensorFlow. In caso di incompatibilità, considerare il casting del tipo.
- Conversione di un tensore costante in una
Variable: è possibile inizializzare unaVariableutilizzando diversi metodi di creazione di tensori cometf.ones(),tf.linspace(),tf.randome così via. Basta passare la funzione o il tensore preesistente atf.Variable().
12345678910111213import tensorflow as tf # Create a variable from a tensor tensor = tf.random.normal((2, 3)) variable_1 = tf.Variable(tensor) # Create a variable based on other generator variable_2 = tf.Variable(tf.zeros((2, 2))) # Display tensors print(variable_1) print('-' * 50) print(variable_2)
Per migliorare nella creazione di tensori, esercitarsi con forme e valori diversi. Per ulteriori dettagli sui comandi specifici, consultare la documentazione TensorFlow ufficiale. Contiene tutte le informazioni necessarie su qualsiasi comando o modulo della libreria.
Swipe to start coding
Il tuo compito è creare, modificare e convertire vari tensori utilizzando TensorFlow.
Parte 1 — Inizializzazione dei tensori
- Crea un tensore chiamato
tensor_Acon forma(3, 3)e tutti gli elementi uguali a 5. - Crea un tensore mutabile chiamato
tensor_Bcon forma(2, 3)e valori a tua scelta. - Crea un tensore chiamato
tensor_Ccon forma(3, 3)riempito di zeri. - Crea un tensore chiamato
tensor_Dcon forma(4, 4)riempito di uni. - Crea un tensore chiamato
tensor_Econ 5 valori equidistanti tra 3 e 15. - Crea un tensore chiamato
tensor_Fcon valori casuali e forma(2, 2).
Parte 2 — Conversioni
- Converti l'array NumPy
np_arrayin un tensore TensorFlow chiamatotensor_from_array. - Converti il DataFrame
dfin un tensore TensorFlow chiamatotensor_from_dataframe.
Nota
- Utilizza le funzioni TensorFlow più adatte per ciascuna operazione:
tf.fill()per tensori con un singolo valore ripetuto;tf.Variable()per tensori mutabili;tf.zeros()/tf.ones()per tensori riempiti di zeri o uni;tf.linspace()per tensori con valori equidistanti;tf.random.normal()per tensori casuali;- Utilizza
tf.convert_to_tensor()per le conversioni da array NumPy o DataFrame pandas; - Evita di usare
tf.constant()— utilizza invece le funzioni più specifiche elencate sopra.
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
Awesome!
Completion rate improved to 5.56
Creazione di Tensori
Scorri per mostrare il menu
Creazione di Tensors
Questa lezione si concentra sulla creazione di tensori utilizzando TensorFlow. TensorFlow offre numerosi metodi per inizializzare i tensori. Al termine di questa lezione, sarai in grado di generare tensori per un'ampia gamma di applicazioni.
Inizializzatori di Tensor di Base
tf.constant(): questo è il modo più semplice per creare un tensore. Come suggerisce il nome, i tensori inizializzati con questo metodo contengono valori costanti e sono immutabili;
12345import tensorflow as tf # Create a 2x2 constant tensor tensor_const = tf.constant([[1, 2], [3, 4]]) print(tensor_const)
tf.Variable(): a differenza ditf.constant(), un tensore definito utilizzandotf.Variable()è mutabile. Questo significa che il suo valore può essere modificato, rendendolo ideale per parametri addestrabili nei modelli;
12345import tensorflow as tf # Create a variable tensor tensor_var = tf.Variable([[1, 2], [3, 4]]) print(tensor_var)
tf.zeros(): crea un tensore riempito di zeri;
12345import tensorflow as tf # Zero tensor of shape (3, 3) tensor_zeros = tf.zeros((3, 3)) print(tensor_zeros)
tf.ones(): al contrario, crea un tensore riempito di uno;
12345import tensorflow as tf # Ones tensor of shape (2, 2) tensor_ones = tf.ones((2, 2)) print(tensor_ones)
tf.fill(): crea un tensore riempito con un valore specifico;
12345import tensorflow as tf # Tensor of shape (2, 2) filled with 6 tensor_fill = tf.fill((2, 2), 6) print(tensor_fill)
tf.linspace()etf.range(): strumenti ideali per creare sequenze;
123456789import tensorflow as tf # Generate a sequence of numbers starting from 0, ending at 9 tensor_range = tf.range(10) print(tensor_range) # Create 5 equally spaced values between 0 and 10 tensor_linspace = tf.linspace(0, 10, 5) print(tensor_linspace)
tf.random: genera tensori con valori casuali. Sono disponibili diverse distribuzioni e funzioni all'interno di questo modulo, cometf.random.normal()per valori da una distribuzione normale etf.random.uniform()per valori da una distribuzione uniforme.
È possibile anche impostare un seed fisso per ottenere risultati coerenti a ogni generazione di numeri casuali utilizzando tf.random.set_seed(). Tuttavia, si noti che in questo modo si otterrà lo stesso numero per qualsiasi generazione casuale all'interno di TensorFlow.
Se si desidera ottenere numeri coerenti solo per un comando specifico, è possibile fornire un argomento seed a quel comando con il valore di seed desiderato.
1234567891011121314import tensorflow as tf # Set random seed tf.random.set_seed(72) # Tensor of shape (2, 2) with random values normally distributed # (by default `mean=0` and `std=1`) tensor_random = tf.random.normal((2, 2), mean=4, stddev=0.5) print(tensor_random) # Tensor of shape (2, 2) with random values uniformly distributed # (by default `min=0` and `max=1`) tensor_random = tf.random.uniform((2, 2), minval=-2, maxval=2) print(tensor_random)
Conversione tra strutture dati
I tensori di TensorFlow possono essere convertiti facilmente da e verso le strutture dati Python più comuni.
- Da array Numpy: I tensori TensorFlow e gli array Numpy sono altamente interoperabili. Utilizzare
tf.convert_to_tensor();
12345678910import numpy as np import tensorflow as tf # Create a NumPy array based on a Python list numpy_array = np.array([[1, 2], [3, 4]]) # Convert a NumPy array to a tensor tensor_from_np = tf.convert_to_tensor(numpy_array) print(tensor_from_np)
- Da Pandas DataFrame: per chi preferisce l'analisi dei dati con Pandas, convertire un DataFrame o una Series in un tensore TensorFlow è semplice. Utilizzare anche
tf.convert_to_tensor();
12345678910import pandas as pd import tensorflow as tf # Create a DataFrame based on dictionary df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) # Convert a DataFrame to a tensor tensor_from_df = tf.convert_to_tensor(df.values) print(tensor_from_df)
Assicurarsi sempre che i tipi di dati delle strutture originali (array Numpy o Pandas DataFrame) siano compatibili con i tipi di dati dei tensori TensorFlow. In caso di incompatibilità, considerare il casting del tipo.
- Conversione di un tensore costante in una
Variable: è possibile inizializzare unaVariableutilizzando diversi metodi di creazione di tensori cometf.ones(),tf.linspace(),tf.randome così via. Basta passare la funzione o il tensore preesistente atf.Variable().
12345678910111213import tensorflow as tf # Create a variable from a tensor tensor = tf.random.normal((2, 3)) variable_1 = tf.Variable(tensor) # Create a variable based on other generator variable_2 = tf.Variable(tf.zeros((2, 2))) # Display tensors print(variable_1) print('-' * 50) print(variable_2)
Per migliorare nella creazione di tensori, esercitarsi con forme e valori diversi. Per ulteriori dettagli sui comandi specifici, consultare la documentazione TensorFlow ufficiale. Contiene tutte le informazioni necessarie su qualsiasi comando o modulo della libreria.
Swipe to start coding
Il tuo compito è creare, modificare e convertire vari tensori utilizzando TensorFlow.
Parte 1 — Inizializzazione dei tensori
- Crea un tensore chiamato
tensor_Acon forma(3, 3)e tutti gli elementi uguali a 5. - Crea un tensore mutabile chiamato
tensor_Bcon forma(2, 3)e valori a tua scelta. - Crea un tensore chiamato
tensor_Ccon forma(3, 3)riempito di zeri. - Crea un tensore chiamato
tensor_Dcon forma(4, 4)riempito di uni. - Crea un tensore chiamato
tensor_Econ 5 valori equidistanti tra 3 e 15. - Crea un tensore chiamato
tensor_Fcon valori casuali e forma(2, 2).
Parte 2 — Conversioni
- Converti l'array NumPy
np_arrayin un tensore TensorFlow chiamatotensor_from_array. - Converti il DataFrame
dfin un tensore TensorFlow chiamatotensor_from_dataframe.
Nota
- Utilizza le funzioni TensorFlow più adatte per ciascuna operazione:
tf.fill()per tensori con un singolo valore ripetuto;tf.Variable()per tensori mutabili;tf.zeros()/tf.ones()per tensori riempiti di zeri o uni;tf.linspace()per tensori con valori equidistanti;tf.random.normal()per tensori casuali;- Utilizza
tf.convert_to_tensor()per le conversioni da array NumPy o DataFrame pandas; - Evita di usare
tf.constant()— utilizza invece le funzioni più specifiche elencate sopra.
Soluzione
Grazie per i tuoi commenti!
single