Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Operazioni di Riduzione | Tensori
Introduzione a TensorFlow

bookOperazioni di Riduzione

Operazioni di Riduzione

Nel contesto delle operazioni sui tensori, esistono numerosi compiti in cui è necessario ridurre le dimensioni dei dati, sia riassumendoli lungo uno o più assi. Ad esempio, se si dispone di un tensore 2D (una matrice), un'operazione di riduzione può calcolare un valore per ogni riga o colonna, producendo così un tensore 1D (un vettore). TensorFlow mette a disposizione una serie di operazioni per questo scopo e, in questo capitolo, verranno analizzate le operazioni di riduzione più comunemente utilizzate.

Somma, Media, Massimo e Minimo

TensorFlow offre i seguenti metodi per questi calcoli:

  • tf.reduce_sum(): calcola la somma di tutti gli elementi del tensore o lungo un asse specifico;
  • tf.reduce_mean(): calcola la media degli elementi del tensore;
  • tf.reduce_max(): determina il valore massimo nel tensore;
  • tf.reduce_min(): individua il valore minimo nel tensore.
12345678910111213141516171819
import tensorflow as tf tensor = tf.constant([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]) # Calculate sum of all elements total_sum = tf.reduce_sum(tensor) print("Total Sum:", total_sum.numpy()) # Calculate mean of all elements mean_val = tf.reduce_mean(tensor) print("Mean Value:", mean_val.numpy()) # Determine the maximum value max_val = tf.reduce_max(tensor) print("Maximum Value:", max_val.numpy()) # Find the minimum value min_val = tf.reduce_min(tensor) print("Minimum Value:", min_val.numpy())
copy
Note
Nota

Il metodo .numpy() è stato utilizzato per convertire i tensori in array NumPy, offrendo una presentazione visiva più chiara dei numeri quando vengono visualizzati.

Operazioni lungo assi specifici

I tensori possono avere più dimensioni e, a volte, è necessario eseguire riduzioni lungo un asse specifico. Il parametro axis consente di specificare quale asse o quali assi si desidera ridurre.

  • axis=0: esegue l'operazione lungo le righe (restituendo un vettore colonna);
  • axis=1: esegue l'operazione lungo le colonne (restituendo un vettore riga);
  • È possibile ridurre simultaneamente lungo più assi fornendo una lista al parametro axis;
  • Quando il rango del tensore viene ridotto, è possibile utilizzare keepdims=True per mantenere la dimensione ridotta pari a 1.

Per un tensore 2D (matrice):

1234567891011121314151617181920
import tensorflow as tf tensor = tf.constant([[1., 2.], [3., 4.], [5., 6.]]) # Calculate the sum of each column col_sum = tf.reduce_sum(tensor, axis=0) print("Column-wise Sum:", col_sum.numpy()) # Calculate the maximum of each row col_max = tf.reduce_max(tensor, axis=1) print("Row-wise Max:", col_max.numpy()) # Calculate the mean of the whole tensor (reduce along both directions) # Equivalent to not specifying the axis at all total_mean = tf.reduce_mean(tensor, axis=(0, 1)) print("Total Mean:", total_mean.numpy()) # Calculate the mean of the whole tensor (keeping reduced dimensions) total_mean_dim = tf.reduce_mean(tensor, axis=(0, 1), keepdims=True) print("Total Mean (saving dimensions):", total_mean_dim.numpy())
copy
Note
Nota

Quando si esegue un'operazione di riduzione lungo un asse specifico, si elimina essenzialmente quell'asse dal tensore, aggregando tutti i tensori presenti su quell'asse elemento per elemento. Lo stesso effetto si mantiene per qualsiasi numero di dimensioni.

Ecco come appare per un tensore 3D:

12345678910111213141516171819
import tensorflow as tf tensor = tf.constant([ [[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]] ]) # Calculate the sum along axis 0 sum_0 = tf.reduce_sum(tensor, axis=0) print("Sum axis 0:\n", sum_0.numpy()) # Calculate the sum along axis 1 sum_1 = tf.reduce_sum(tensor, axis=1) print("Sum axis 1:\n", sum_1.numpy()) # Calculate the sum along axes 0 and 1 sum_0_1 = tf.reduce_sum(tensor, axis=(0, 1)) print("Sum axes 0 and 1:\n", sum_0_1.numpy())
copy
Note
Nota

Molte altre operazioni di riduzione esistono in TensorFlow, ma si basano sugli stessi principi.

Compito

Swipe to start coding

Contesto

Sei un data scientist presso un'agenzia di ricerca meteorologica. Ti è stato fornito un tensore contenente rilevazioni meteorologiche provenienti da diverse città in diversi giorni. Il tensore ha la seguente struttura:

  • Dimensione 1: rappresenta le diverse città;
  • Dimensione 2: rappresenta i diversi giorni.
  • Ogni elemento del tensore è una tupla di (temperature, humidity).

Obiettivo

  1. Calcolare la temperatura media per ciascuna città su tutti i giorni.
  2. Calcolare il valore massimo di umidità registrato tra tutte le città per ciascun giorno.

Nota

In questo tensore, il primo numero di ogni tupla rappresenta la temperatura (in gradi Celsius) e il secondo numero rappresenta l'umidità (in percentuale) per quel giorno e città.

Soluzione

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 12
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

Suggested prompts:

Can you explain what the axis parameter means in more detail?

How does keepdims=True affect the output shape?

Can you show more examples with higher-dimensional tensors?

close

Awesome!

Completion rate improved to 5.56

bookOperazioni di Riduzione

Scorri per mostrare il menu

Operazioni di Riduzione

Nel contesto delle operazioni sui tensori, esistono numerosi compiti in cui è necessario ridurre le dimensioni dei dati, sia riassumendoli lungo uno o più assi. Ad esempio, se si dispone di un tensore 2D (una matrice), un'operazione di riduzione può calcolare un valore per ogni riga o colonna, producendo così un tensore 1D (un vettore). TensorFlow mette a disposizione una serie di operazioni per questo scopo e, in questo capitolo, verranno analizzate le operazioni di riduzione più comunemente utilizzate.

Somma, Media, Massimo e Minimo

TensorFlow offre i seguenti metodi per questi calcoli:

  • tf.reduce_sum(): calcola la somma di tutti gli elementi del tensore o lungo un asse specifico;
  • tf.reduce_mean(): calcola la media degli elementi del tensore;
  • tf.reduce_max(): determina il valore massimo nel tensore;
  • tf.reduce_min(): individua il valore minimo nel tensore.
12345678910111213141516171819
import tensorflow as tf tensor = tf.constant([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]) # Calculate sum of all elements total_sum = tf.reduce_sum(tensor) print("Total Sum:", total_sum.numpy()) # Calculate mean of all elements mean_val = tf.reduce_mean(tensor) print("Mean Value:", mean_val.numpy()) # Determine the maximum value max_val = tf.reduce_max(tensor) print("Maximum Value:", max_val.numpy()) # Find the minimum value min_val = tf.reduce_min(tensor) print("Minimum Value:", min_val.numpy())
copy
Note
Nota

Il metodo .numpy() è stato utilizzato per convertire i tensori in array NumPy, offrendo una presentazione visiva più chiara dei numeri quando vengono visualizzati.

Operazioni lungo assi specifici

I tensori possono avere più dimensioni e, a volte, è necessario eseguire riduzioni lungo un asse specifico. Il parametro axis consente di specificare quale asse o quali assi si desidera ridurre.

  • axis=0: esegue l'operazione lungo le righe (restituendo un vettore colonna);
  • axis=1: esegue l'operazione lungo le colonne (restituendo un vettore riga);
  • È possibile ridurre simultaneamente lungo più assi fornendo una lista al parametro axis;
  • Quando il rango del tensore viene ridotto, è possibile utilizzare keepdims=True per mantenere la dimensione ridotta pari a 1.

Per un tensore 2D (matrice):

1234567891011121314151617181920
import tensorflow as tf tensor = tf.constant([[1., 2.], [3., 4.], [5., 6.]]) # Calculate the sum of each column col_sum = tf.reduce_sum(tensor, axis=0) print("Column-wise Sum:", col_sum.numpy()) # Calculate the maximum of each row col_max = tf.reduce_max(tensor, axis=1) print("Row-wise Max:", col_max.numpy()) # Calculate the mean of the whole tensor (reduce along both directions) # Equivalent to not specifying the axis at all total_mean = tf.reduce_mean(tensor, axis=(0, 1)) print("Total Mean:", total_mean.numpy()) # Calculate the mean of the whole tensor (keeping reduced dimensions) total_mean_dim = tf.reduce_mean(tensor, axis=(0, 1), keepdims=True) print("Total Mean (saving dimensions):", total_mean_dim.numpy())
copy
Note
Nota

Quando si esegue un'operazione di riduzione lungo un asse specifico, si elimina essenzialmente quell'asse dal tensore, aggregando tutti i tensori presenti su quell'asse elemento per elemento. Lo stesso effetto si mantiene per qualsiasi numero di dimensioni.

Ecco come appare per un tensore 3D:

12345678910111213141516171819
import tensorflow as tf tensor = tf.constant([ [[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]] ]) # Calculate the sum along axis 0 sum_0 = tf.reduce_sum(tensor, axis=0) print("Sum axis 0:\n", sum_0.numpy()) # Calculate the sum along axis 1 sum_1 = tf.reduce_sum(tensor, axis=1) print("Sum axis 1:\n", sum_1.numpy()) # Calculate the sum along axes 0 and 1 sum_0_1 = tf.reduce_sum(tensor, axis=(0, 1)) print("Sum axes 0 and 1:\n", sum_0_1.numpy())
copy
Note
Nota

Molte altre operazioni di riduzione esistono in TensorFlow, ma si basano sugli stessi principi.

Compito

Swipe to start coding

Contesto

Sei un data scientist presso un'agenzia di ricerca meteorologica. Ti è stato fornito un tensore contenente rilevazioni meteorologiche provenienti da diverse città in diversi giorni. Il tensore ha la seguente struttura:

  • Dimensione 1: rappresenta le diverse città;
  • Dimensione 2: rappresenta i diversi giorni.
  • Ogni elemento del tensore è una tupla di (temperature, humidity).

Obiettivo

  1. Calcolare la temperatura media per ciascuna città su tutti i giorni.
  2. Calcolare il valore massimo di umidità registrato tra tutte le città per ciascun giorno.

Nota

In questo tensore, il primo numero di ogni tupla rappresenta la temperatura (in gradi Celsius) e il secondo numero rappresenta l'umidità (in percentuale) per quel giorno e città.

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 12
single

single

some-alt