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.
En view er et nytt tensor med en annen form som deler samme data som det opprinnelige tensor. Endringer gjort i view vil gjenspeiles i det opprinnelige tensoret, og omvendt, siden de deler samme underliggende minne.
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 det opprinnelige tensoret.
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
Det er mulig å bruke -1 i formen for å la PyTorch utlede størrelsen på én dimensjon basert på totalt antall 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)
Endring av 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
Fantastisk!
Completion rate forbedret til 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.
En view er et nytt tensor med en annen form som deler samme data som det opprinnelige tensor. Endringer gjort i view vil gjenspeiles i det opprinnelige tensoret, og omvendt, siden de deler samme underliggende minne.
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 det opprinnelige tensoret.
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
Det er mulig å bruke -1 i formen for å la PyTorch utlede størrelsen på én dimensjon basert på totalt antall 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)
Endring av 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!