Former og Dimensjoner i PyTorch
På samme måte som NumPy-arrays bestemmer en tensors form dens dimensjoner. Du kan inspisere formen til en tensor ved å bruke attributtet .shape:
123import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
Endre form på tensorer med view
Metoden .view() oppretter en ny visning av tensoren med den angitte formen uten å endre den opprinnelige tensoren. Det totale antallet elementer må forbli det samme.
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}")
Endring av form på tensorer med reshape
Metoden .reshape() ligner på .view(), men kan håndtere tilfeller der tensoren ikke er lagret sammenhengende i minnet. Den endrer heller ikke den opprinnelige tensoren.
12345import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
Bruk av negative dimensjoner
Du kan bruke -1 i formen for å la PyTorch utlede størrelsen på én dimensjon basert på det totale antallet elementer.
12345import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
Forståelse av tensor-views
En view av en tensor deler de samme dataene med den opprinnelige tensoren. Endringer i view påvirker den opprinnelige tensoren og omvendt.
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)
Endre dimensjoner
Følgende to metoder lar deg legge til eller fjerne dimensjoner:
unsqueeze(dim)legger til en ny dimensjon på angitt posisjon;squeeze(dim)fjerner dimensjoner med størrelse 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}")
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Former og Dimensjoner i PyTorch
Sveip for å vise menyen
På samme måte som NumPy-arrays bestemmer en tensors form dens dimensjoner. Du kan inspisere formen til en tensor ved å bruke attributtet .shape:
123import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
Endre form på tensorer med view
Metoden .view() oppretter en ny visning av tensoren med den angitte formen uten å endre den opprinnelige tensoren. Det totale antallet elementer må forbli det samme.
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}")
Endring av form på tensorer med reshape
Metoden .reshape() ligner på .view(), men kan håndtere tilfeller der tensoren ikke er lagret sammenhengende i minnet. Den endrer heller ikke den opprinnelige tensoren.
12345import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
Bruk av negative dimensjoner
Du kan bruke -1 i formen for å la PyTorch utlede størrelsen på én dimensjon basert på det totale antallet elementer.
12345import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
Forståelse av tensor-views
En view av en tensor deler de samme dataene med den opprinnelige tensoren. Endringer i view påvirker den opprinnelige tensoren og omvendt.
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)
Endre dimensjoner
Følgende to metoder lar deg legge til eller fjerne dimensjoner:
unsqueeze(dim)legger til en ny dimensjon på angitt posisjon;squeeze(dim)fjerner dimensjoner med størrelse 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}")
Takk for tilbakemeldingene dine!