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}")
Endring av tensorform 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
Can you explain the difference between view() and reshape() in more detail?
How does using -1 in the shape argument work?
What happens if I modify a tensor view?
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}")
Endring av tensorform 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!