Former og Dimensioner i PyTorch
På samme måde som NumPy-arrays bestemmer en tensors form dens dimensioner. Du kan inspicere en tensors form ved at bruge attributten .shape
:
123import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
Omformning af tensorer med view
Metoden .view()
opretter en ny visning af tensoren med den angivne form uden at ændre den oprindelige tensor. Det samlede antal elementer skal forblive 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}")
Omformning af tensorer med reshape
Metoden .reshape()
ligner .view()
, men kan håndtere tilfælde, hvor tensoren ikke er lagret sammenhængende i hukommelsen. Den ændrer heller ikke den oprindelige tensor.
12345import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
Brug af negative dimensioner
Det er muligt at anvende -1
i formen for at lade PyTorch udlede størrelsen af én dimension baseret på det samlede antal 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 af tensor views
Et view af en tensor deler de samme data med den oprindelige tensor. Ændringer i viewet påvirker den oprindelige tensor 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)
Ændring af dimensioner
Følgende to metoder gør det muligt at tilføje eller fjerne dimensioner:
unsqueeze(dim)
tilføjer en ny dimension på den angivne position;squeeze(dim)
fjerner dimensioner 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}")
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 5
Former og Dimensioner i PyTorch
Stryg for at vise menuen
På samme måde som NumPy-arrays bestemmer en tensors form dens dimensioner. Du kan inspicere en tensors form ved at bruge attributten .shape
:
123import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
Omformning af tensorer med view
Metoden .view()
opretter en ny visning af tensoren med den angivne form uden at ændre den oprindelige tensor. Det samlede antal elementer skal forblive 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}")
Omformning af tensorer med reshape
Metoden .reshape()
ligner .view()
, men kan håndtere tilfælde, hvor tensoren ikke er lagret sammenhængende i hukommelsen. Den ændrer heller ikke den oprindelige tensor.
12345import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
Brug af negative dimensioner
Det er muligt at anvende -1
i formen for at lade PyTorch udlede størrelsen af én dimension baseret på det samlede antal 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 af tensor views
Et view af en tensor deler de samme data med den oprindelige tensor. Ændringer i viewet påvirker den oprindelige tensor 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)
Ændring af dimensioner
Følgende to metoder gør det muligt at tilføje eller fjerne dimensioner:
unsqueeze(dim)
tilføjer en ny dimension på den angivne position;squeeze(dim)
fjerner dimensioner 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}")
Tak for dine kommentarer!