Operazioni 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:
123456789101112131415import 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}")
Operazioni Matriciali
PyTorch supporta anche la moltiplicazione di matrici e il prodotto scalare, che vengono eseguiti utilizzando la funzione torch.matmul()
:
123456import 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}")
È possibile utilizzare anche l'operatore @
per la moltiplicazione di matrici:
12345import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) z = x @ y print(f"Matrix Multiplication with @: {z}")
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.
12345678910import 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()}")
I metodi di aggregazione dispongono anche di due parametri opzionali:
dim
: specifica la dimensione (in modo analogo aaxis
in NumPy) lungo la quale viene applicata l'operazione. Per impostazione predefinita, sedim
non è fornito, l'operazione viene applicata a tutti gli elementi del tensore;keepdim
: flag booleano (False
per impostazione predefinita). Se impostato suTrue
, la dimensione ridotta viene mantenuta come dimensione di valore1
nell'output, preservando il numero originale di dimensioni.
12345678import 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)}")
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.
123456import 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}")
Funzioni Matematiche Utili
PyTorch offre anche diverse funzioni matematiche come esponenziali, logaritmi e funzioni trigonometriche.
1234567tensor = 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()}")
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Can you explain more about how broadcasting works in PyTorch?
What are some other common aggregation operations in PyTorch?
How do I choose between element-wise and matrix operations?
Awesome!
Completion rate improved to 5
Operazioni 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:
123456789101112131415import 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}")
Operazioni Matriciali
PyTorch supporta anche la moltiplicazione di matrici e il prodotto scalare, che vengono eseguiti utilizzando la funzione torch.matmul()
:
123456import 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}")
È possibile utilizzare anche l'operatore @
per la moltiplicazione di matrici:
12345import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) z = x @ y print(f"Matrix Multiplication with @: {z}")
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.
12345678910import 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()}")
I metodi di aggregazione dispongono anche di due parametri opzionali:
dim
: specifica la dimensione (in modo analogo aaxis
in NumPy) lungo la quale viene applicata l'operazione. Per impostazione predefinita, sedim
non è fornito, l'operazione viene applicata a tutti gli elementi del tensore;keepdim
: flag booleano (False
per impostazione predefinita). Se impostato suTrue
, la dimensione ridotta viene mantenuta come dimensione di valore1
nell'output, preservando il numero originale di dimensioni.
12345678import 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)}")
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.
123456import 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}")
Funzioni Matematiche Utili
PyTorch offre anche diverse funzioni matematiche come esponenziali, logaritmi e funzioni trigonometriche.
1234567tensor = 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()}")
Grazie per i tuoi commenti!