Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Operações Matemáticas com Tensores | Introdução ao PyTorch
Essenciais de PyTorch

bookOperações Matemáticas com Tensores

Operações Elemento a Elemento

Operações elemento a elemento são aplicadas a cada elemento do tensor individualmente. Essas operações, como adição, subtração e divisão, funcionam de maneira semelhante ao 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

Operações Matriciais

O PyTorch também oferece suporte à multiplicação de matrizes e ao produto escalar, que são realizados utilizando a função 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

Também é possível utilizar o operador @ para multiplicação de matrizes:

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

Operações de Agregação

Operações de agregação calculam estatísticas resumidas a partir de tensores, como soma, média, valores máximos e mínimos, que podem ser obtidos utilizando seus respectivos métodos.

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

Os métodos de agregação também possuem dois parâmetros opcionais:

  • dim: especifica a dimensão (semelhante ao axis no NumPy) ao longo da qual a operação é aplicada. Por padrão, se dim não for fornecido, a operação é aplicada a todos os elementos do tensor;
  • keepdim: parâmetro booleano (False por padrão). Se definido como True, a dimensão reduzida é mantida como uma dimensão de tamanho 1 na saída, preservando o número original de dimensões.
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

Broadcasting permite operações entre tensores de diferentes formas ao expandir automaticamente as dimensões. Se precisar de uma revisão sobre broadcasting, você pode encontrar mais detalhes aqui.

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

Funções Matemáticas Úteis

O PyTorch também oferece diversas funções matemáticas como exponenciais, logaritmos e funções trigonométricas.

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

Qual das seguintes operações realiza corretamente a multiplicação de matrizes no PyTorch?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 7

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

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

bookOperações Matemáticas com Tensores

Deslize para mostrar o menu

Operações Elemento a Elemento

Operações elemento a elemento são aplicadas a cada elemento do tensor individualmente. Essas operações, como adição, subtração e divisão, funcionam de maneira semelhante ao 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

Operações Matriciais

O PyTorch também oferece suporte à multiplicação de matrizes e ao produto escalar, que são realizados utilizando a função 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

Também é possível utilizar o operador @ para multiplicação de matrizes:

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

Operações de Agregação

Operações de agregação calculam estatísticas resumidas a partir de tensores, como soma, média, valores máximos e mínimos, que podem ser obtidos utilizando seus respectivos métodos.

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

Os métodos de agregação também possuem dois parâmetros opcionais:

  • dim: especifica a dimensão (semelhante ao axis no NumPy) ao longo da qual a operação é aplicada. Por padrão, se dim não for fornecido, a operação é aplicada a todos os elementos do tensor;
  • keepdim: parâmetro booleano (False por padrão). Se definido como True, a dimensão reduzida é mantida como uma dimensão de tamanho 1 na saída, preservando o número original de dimensões.
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

Broadcasting permite operações entre tensores de diferentes formas ao expandir automaticamente as dimensões. Se precisar de uma revisão sobre broadcasting, você pode encontrar mais detalhes aqui.

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

Funções Matemáticas Úteis

O PyTorch também oferece diversas funções matemáticas como exponenciais, logaritmos e funções trigonométricas.

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

Qual das seguintes operações realiza corretamente a multiplicação de matrizes no PyTorch?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 7
some-alt