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 | Sezione
Practice
Projects
Quizzes & Challenges
Quiz
Challenges
/
Fondamenti di PyTorch per Ingegneri ML

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
Note
Nota

Abbiamo utilizzato il metodo float() per convertire il tipo di dato del tensore in floating-point perché il metodo mean() richiede un tipo di dato a virgola mobile. Senza questa conversione, il tensore mantiene il suo tipo intero predefinito, che non è compatibile con mean().

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 tramite l'espansione automatica delle dimensioni. Se è necessario un ripasso sul broadcasting, sono disponibili ulteriori 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 all correct answers

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

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
Note
Nota

Abbiamo utilizzato il metodo float() per convertire il tipo di dato del tensore in floating-point perché il metodo mean() richiede un tipo di dato a virgola mobile. Senza questa conversione, il tensore mantiene il suo tipo intero predefinito, che non è compatibile con mean().

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 tramite l'espansione automatica delle dimensioni. Se è necessario un ripasso sul broadcasting, sono disponibili ulteriori 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 all correct answers

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 7
some-alt