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 impostare anche 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 strutture dati Python familiari.
- 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 è appassionato di 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 unaVariable
utilizzando diversi metodi di creazione di tensori cometf.ones()
,tf.linspace()
,tf.random
e 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 di TensorFlow. 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 in questa sfida.
Parte 1 — Inizializzazione dei tensori
- Creare un tensore chiamato
tensor_A
con forma(3, 3)
e tutti gli elementi uguali a 5. - Creare un tensore mutabile chiamato
tensor_B
con forma(2, 3)
e valori a tua scelta. - Creare un tensore chiamato
tensor_C
con forma(3, 3)
riempito di zeri. - Creare un tensore chiamato
tensor_D
con forma(4, 4)
riempito di uni. - Creare un tensore chiamato
tensor_E
con 5 valori equidistanti tra 3 e 15. - Creare un tensore chiamato
tensor_F
con valori casuali e forma(2, 2)
.
Parte 2 — Conversioni
- Convertire l'array NumPy
np_array
in un tensore TensorFlow chiamatotensor_from_array
. - Convertire il DataFrame
df
in un tensore TensorFlow chiamatotensor_from_dataframe
.
Nota
- Utilizzare le funzioni TensorFlow più appropriate (ad esempio,
tf.ones()
,tf.zeros()
,tf.fill()
, ecc.). - Per le conversioni, utilizzare
tf.convert_to_tensor()
. - Per i tensori con valori equidistanti, utilizzare
tf.linspace(start, stop, num)
. - Per i tensori casuali, utilizzare
tf.random.normal(shape)
.
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 impostare anche 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 strutture dati Python familiari.
- 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 è appassionato di 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 unaVariable
utilizzando diversi metodi di creazione di tensori cometf.ones()
,tf.linspace()
,tf.random
e 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 di TensorFlow. 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 in questa sfida.
Parte 1 — Inizializzazione dei tensori
- Creare un tensore chiamato
tensor_A
con forma(3, 3)
e tutti gli elementi uguali a 5. - Creare un tensore mutabile chiamato
tensor_B
con forma(2, 3)
e valori a tua scelta. - Creare un tensore chiamato
tensor_C
con forma(3, 3)
riempito di zeri. - Creare un tensore chiamato
tensor_D
con forma(4, 4)
riempito di uni. - Creare un tensore chiamato
tensor_E
con 5 valori equidistanti tra 3 e 15. - Creare un tensore chiamato
tensor_F
con valori casuali e forma(2, 2)
.
Parte 2 — Conversioni
- Convertire l'array NumPy
np_array
in un tensore TensorFlow chiamatotensor_from_array
. - Convertire il DataFrame
df
in un tensore TensorFlow chiamatotensor_from_dataframe
.
Nota
- Utilizzare le funzioni TensorFlow più appropriate (ad esempio,
tf.ones()
,tf.zeros()
,tf.fill()
, ecc.). - Per le conversioni, utilizzare
tf.convert_to_tensor()
. - Per i tensori con valori equidistanti, utilizzare
tf.linspace(start, stop, num)
. - Per i tensori casuali, utilizzare
tf.random.normal(shape)
.
Soluzione
Grazie per i tuoi commenti!
single