Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Operazioni Matematiche con i Tensori | Introduzione a PyTorch
Fondamenti di PyTorch

bookOperazioni Matematiche con i Tensori

Operazioni Elemento per Elemento

Le operazioni elemento per elemento vengono applicate a ciascun elemento del tensore individualmente. Queste operazioni, come addizione, sottrazione e divisione, funzionano in modo simile a come avviene in NumPy:

123456789101112131415
import torch a = torch.tensor([1, 2, 3]) b = torch.tensor([4, 5, 6]) # Element-wise addition addition_result = a + b print(f"Addition: {addition_result}") # Element-wise subtraction subtraction_result = a - b print(f"Subtraction: {subtraction_result}") # Element-wise multiplication multiplication_result = a * b print(f"Multiplication: {multiplication_result}") # Element-wise division division_result = a / b print(f"Division: {division_result}")
copy

Operazioni Matriciali

PyTorch supporta anche la moltiplicazione di matrici e il prodotto scalare, che vengono eseguiti utilizzando la funzione torch.matmul():

123456
import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) # Matrix multiplication z = torch.matmul(x, y) print(f"Matrix multiplication: {z}")
copy

È possibile utilizzare anche l'operatore @ per la moltiplicazione matriciale:

12345
import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) z = x @ y print(f"Matrix Multiplication with @: {z}")
copy

Operazioni di Aggregazione

Le operazioni di aggregazione calcolano statistiche riassuntive dai tensori, come somma, media, valore massimo e minimo, che possono essere ottenute utilizzando i rispettivi metodi.

12345678910
import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]).float() # Sum of all elements print(f"Sum: {tensor.sum()}") # Mean of all elements print(f"Mean: {tensor.mean()}") # Maximum value print(f"Max: {tensor.max()}") # Minimum value print(f"Min: {tensor.min()}")
copy

I metodi di aggregazione dispongono anche di due parametri opzionali:

  • dim: specifica la dimensione (in modo analogo a axis in NumPy) lungo la quale viene applicata l'operazione. Per impostazione predefinita, se dim non è fornito, l'operazione viene applicata a tutti gli elementi del tensore;
  • keepdim: flag booleano (False per impostazione predefinita). Se impostato su True, la dimensione ridotta viene mantenuta come dimensione di valore 1 nell'output, preservando il numero originale di dimensioni.
12345678
import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) # Aggregation operations along specific dimensions print(f"Sum along rows (dim=1): {tensor.sum(dim=1)}") print(f"Sum along columns (dim=0): {tensor.sum(dim=0)}") # Aggregation with keepdim=True print(f"Sum along rows with keepdim (dim=1): {tensor.sum(dim=1, keepdim=True)}") print(f"Sum along columns with keepdim (dim=0): {tensor.sum(dim=0, keepdim=True)}")
copy

Broadcasting

Il broadcasting consente operazioni tra tensori di forme diverse espandendo automaticamente le dimensioni. Se hai bisogno di un ripasso sul broadcasting, puoi trovare maggiori dettagli qui.

123456
import torch a = torch.tensor([[1, 2, 3]]) # Shape (1, 3) b = torch.tensor([[4], [5]]) # Shape (2, 1) # Broadcasting addition c = a + b print(f"Broadcasted addition: {c}")
copy

Funzioni Matematiche Utili

PyTorch offre anche diverse funzioni matematiche come esponenziali, logaritmi e funzioni trigonometriche.

1234567
tensor = torch.tensor([1.0, 2.0, 3.0]) # Exponentiation print(f"Exponent: {tensor.exp()}") # Logarithm print(f"Logarithm: {tensor.log()}") # Sine print(f"Sine: {tensor.sin()}")
copy
question mark

Quale delle seguenti operazioni esegue correttamente la moltiplicazione di matrici in PyTorch?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 7

Chieda ad AI

expand

Chieda ad AI

ChatGPT

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

Awesome!

Completion rate improved to 5

bookOperazioni Matematiche con i Tensori

Scorri per mostrare il menu

Operazioni Elemento per Elemento

Le operazioni elemento per elemento vengono applicate a ciascun elemento del tensore individualmente. Queste operazioni, come addizione, sottrazione e divisione, funzionano in modo simile a come avviene in NumPy:

123456789101112131415
import torch a = torch.tensor([1, 2, 3]) b = torch.tensor([4, 5, 6]) # Element-wise addition addition_result = a + b print(f"Addition: {addition_result}") # Element-wise subtraction subtraction_result = a - b print(f"Subtraction: {subtraction_result}") # Element-wise multiplication multiplication_result = a * b print(f"Multiplication: {multiplication_result}") # Element-wise division division_result = a / b print(f"Division: {division_result}")
copy

Operazioni Matriciali

PyTorch supporta anche la moltiplicazione di matrici e il prodotto scalare, che vengono eseguiti utilizzando la funzione torch.matmul():

123456
import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) # Matrix multiplication z = torch.matmul(x, y) print(f"Matrix multiplication: {z}")
copy

È possibile utilizzare anche l'operatore @ per la moltiplicazione matriciale:

12345
import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) z = x @ y print(f"Matrix Multiplication with @: {z}")
copy

Operazioni di Aggregazione

Le operazioni di aggregazione calcolano statistiche riassuntive dai tensori, come somma, media, valore massimo e minimo, che possono essere ottenute utilizzando i rispettivi metodi.

12345678910
import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]).float() # Sum of all elements print(f"Sum: {tensor.sum()}") # Mean of all elements print(f"Mean: {tensor.mean()}") # Maximum value print(f"Max: {tensor.max()}") # Minimum value print(f"Min: {tensor.min()}")
copy

I metodi di aggregazione dispongono anche di due parametri opzionali:

  • dim: specifica la dimensione (in modo analogo a axis in NumPy) lungo la quale viene applicata l'operazione. Per impostazione predefinita, se dim non è fornito, l'operazione viene applicata a tutti gli elementi del tensore;
  • keepdim: flag booleano (False per impostazione predefinita). Se impostato su True, la dimensione ridotta viene mantenuta come dimensione di valore 1 nell'output, preservando il numero originale di dimensioni.
12345678
import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) # Aggregation operations along specific dimensions print(f"Sum along rows (dim=1): {tensor.sum(dim=1)}") print(f"Sum along columns (dim=0): {tensor.sum(dim=0)}") # Aggregation with keepdim=True print(f"Sum along rows with keepdim (dim=1): {tensor.sum(dim=1, keepdim=True)}") print(f"Sum along columns with keepdim (dim=0): {tensor.sum(dim=0, keepdim=True)}")
copy

Broadcasting

Il broadcasting consente operazioni tra tensori di forme diverse espandendo automaticamente le dimensioni. Se hai bisogno di un ripasso sul broadcasting, puoi trovare maggiori dettagli qui.

123456
import torch a = torch.tensor([[1, 2, 3]]) # Shape (1, 3) b = torch.tensor([[4], [5]]) # Shape (2, 1) # Broadcasting addition c = a + b print(f"Broadcasted addition: {c}")
copy

Funzioni Matematiche Utili

PyTorch offre anche diverse funzioni matematiche come esponenziali, logaritmi e funzioni trigonometriche.

1234567
tensor = torch.tensor([1.0, 2.0, 3.0]) # Exponentiation print(f"Exponent: {tensor.exp()}") # Logarithm print(f"Logarithm: {tensor.log()}") # Sine print(f"Sine: {tensor.sin()}")
copy
question mark

Quale delle seguenti operazioni esegue correttamente la moltiplicazione di matrici in PyTorch?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 7
some-alt