Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Former og Dimensjoner i PyTorch | PyTorch Introduksjon
PyTorch-essensielt

bookFormer 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:

123
import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
copy

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.

1234567
import 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}")
copy

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.

12345
import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
copy

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.

12345
import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
copy

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.

1234567
import 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)
copy

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.
12345678
import 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}")
copy
question mark

Hva blir formen på tensoren etter at følgende kode er kjørt?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 9

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

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

bookFormer 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:

123
import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
copy

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.

1234567
import 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}")
copy

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.

12345
import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
copy

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.

12345
import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
copy

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.

1234567
import 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)
copy

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.
12345678
import 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}")
copy
question mark

Hva blir formen på tensoren etter at følgende kode er kjørt?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 9
some-alt