Former och Dimensioner i PyTorch
På liknande sätt som NumPy-arrayer bestämmer en tensors form dess dimensioner. Du kan inspektera en tensors form med attributet .shape
:
123import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
Omformning av tensorer med view
Metoden .view()
skapar en ny vy av tensorn med den angivna formen utan att ändra den ursprungliga tensorn. Det totala antalet element måste förbli detsamma.
1234567import 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}")
Omformning av tensorer med reshape
Metoden .reshape()
liknar .view()
men kan hantera fall där tensorn inte är lagrad sammanhängande i minnet. Den ändrar inte heller den ursprungliga tensorn.
12345import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
Användning av negativa dimensioner
Du kan använda -1
i formen för att låta PyTorch härleda storleken på en dimension baserat på det totala antalet element.
12345import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
Förstå tensorvyer
En vy av en tensor delar samma data med den ursprungliga tensorn. Ändringar i vyn påverkar den ursprungliga tensorn och vice versa.
1234567import 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)
Ändra dimensioner
Följande två metoder låter dig lägga till eller ta bort dimensioner:
unsqueeze(dim)
lägger till en ny dimension på angiven position;squeeze(dim)
tar bort dimensioner av storlek 1.
12345678import 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}")
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 5
Former och Dimensioner i PyTorch
Svep för att visa menyn
På liknande sätt som NumPy-arrayer bestämmer en tensors form dess dimensioner. Du kan inspektera en tensors form med attributet .shape
:
123import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
Omformning av tensorer med view
Metoden .view()
skapar en ny vy av tensorn med den angivna formen utan att ändra den ursprungliga tensorn. Det totala antalet element måste förbli detsamma.
1234567import 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}")
Omformning av tensorer med reshape
Metoden .reshape()
liknar .view()
men kan hantera fall där tensorn inte är lagrad sammanhängande i minnet. Den ändrar inte heller den ursprungliga tensorn.
12345import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
Användning av negativa dimensioner
Du kan använda -1
i formen för att låta PyTorch härleda storleken på en dimension baserat på det totala antalet element.
12345import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
Förstå tensorvyer
En vy av en tensor delar samma data med den ursprungliga tensorn. Ändringar i vyn påverkar den ursprungliga tensorn och vice versa.
1234567import 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)
Ändra dimensioner
Följande två metoder låter dig lägga till eller ta bort dimensioner:
unsqueeze(dim)
lägger till en ny dimension på angiven position;squeeze(dim)
tar bort dimensioner av storlek 1.
12345678import 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}")
Tack för dina kommentarer!