Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Formas e Dimensões no PyTorch | Introdução ao PyTorch
Essenciais de PyTorch

bookFormas e Dimensões no PyTorch

De forma semelhante aos arrays do NumPy, a forma de um tensor determina suas dimensões. É possível inspecionar a forma de um tensor utilizando o atributo .shape:

123
import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
copy

Redimensionamento de tensores com view

O método .view() cria uma nova visualização do tensor com a forma especificada sem modificar o tensor original. O número total de elementos deve permanecer o mesmo.

1234567
import torch tensor = torch.arange(12) # Reshape a tensor to 4x3 reshaped_tensor = tensor.view(4, 3) print(f"Reshaped tensor: {reshaped_tensor}") # Original tensor remains unchanged print(f"Original tensor: {tensor}")
copy

Redimensionamento de tensores com reshape

O método .reshape() é semelhante ao .view(), mas pode lidar com casos em que o tensor não está armazenado de forma contígua na memória. Ele também não modifica o tensor original.

12345
import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
copy

Utilizando Dimensões Negativas

É possível utilizar -1 na forma para que o PyTorch inira o tamanho de uma dimensão com base no número total de elementos.

12345
import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
copy

Compreendendo as Views de Tensores

Uma view de um tensor compartilha os mesmos dados com o tensor original. Alterações feitas na view afetam o tensor original e vice-versa.

1234567
import torch tensor = torch.arange(12) view_tensor = tensor.view(2, 6) view_tensor[0, 0] = 999 # Changes in the view are reflected in the original tensor print("View Tensor:", view_tensor) print("Original Tensor:", tensor)
copy

Alterando Dimensões

Os dois métodos a seguir permitem adicionar ou remover dimensões:

  • unsqueeze(dim) adiciona uma nova dimensão na posição especificada;
  • squeeze(dim) remove dimensões de tamanho 1.
12345678
import torch tensor = torch.arange(12) # Add a new dimension unsqueezed_tensor = tensor.unsqueeze(0) # Add a batch dimension print(f"Unsqueezed tensor: {unsqueezed_tensor.shape}") # Remove a dimension of size 1 squeezed_tensor = unsqueezed_tensor.squeeze(0) print(f"Squeezed Tensor: {squeezed_tensor.shape}")
copy
question mark

Qual será a forma do tensor após executar o código a seguir?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 9

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

Suggested prompts:

What is the difference between view() and reshape() in PyTorch?

Can you explain how negative dimensions work when reshaping tensors?

How do unsqueeze() and squeeze() affect the shape of a tensor?

Awesome!

Completion rate improved to 5

bookFormas e Dimensões no PyTorch

Deslize para mostrar o menu

De forma semelhante aos arrays do NumPy, a forma de um tensor determina suas dimensões. É possível inspecionar a forma de um tensor utilizando o atributo .shape:

123
import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
copy

Redimensionamento de tensores com view

O método .view() cria uma nova visualização do tensor com a forma especificada sem modificar o tensor original. O número total de elementos deve permanecer o mesmo.

1234567
import torch tensor = torch.arange(12) # Reshape a tensor to 4x3 reshaped_tensor = tensor.view(4, 3) print(f"Reshaped tensor: {reshaped_tensor}") # Original tensor remains unchanged print(f"Original tensor: {tensor}")
copy

Redimensionamento de tensores com reshape

O método .reshape() é semelhante ao .view(), mas pode lidar com casos em que o tensor não está armazenado de forma contígua na memória. Ele também não modifica o tensor original.

12345
import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
copy

Utilizando Dimensões Negativas

É possível utilizar -1 na forma para que o PyTorch inira o tamanho de uma dimensão com base no número total de elementos.

12345
import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
copy

Compreendendo as Views de Tensores

Uma view de um tensor compartilha os mesmos dados com o tensor original. Alterações feitas na view afetam o tensor original e vice-versa.

1234567
import torch tensor = torch.arange(12) view_tensor = tensor.view(2, 6) view_tensor[0, 0] = 999 # Changes in the view are reflected in the original tensor print("View Tensor:", view_tensor) print("Original Tensor:", tensor)
copy

Alterando Dimensões

Os dois métodos a seguir permitem adicionar ou remover dimensões:

  • unsqueeze(dim) adiciona uma nova dimensão na posição especificada;
  • squeeze(dim) remove dimensões de tamanho 1.
12345678
import torch tensor = torch.arange(12) # Add a new dimension unsqueezed_tensor = tensor.unsqueeze(0) # Add a batch dimension print(f"Unsqueezed tensor: {unsqueezed_tensor.shape}") # Remove a dimension of size 1 squeezed_tensor = unsqueezed_tensor.squeeze(0) print(f"Squeezed Tensor: {squeezed_tensor.shape}")
copy
question mark

Qual será a forma do tensor após executar o código a seguir?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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