Vormen en Dimensies in PyTorch
Net als bij NumPy-arrays bepaalt de vorm van een tensor de dimensies. De vorm van een tensor kan worden bekeken met het attribuut .shape:
123import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
Tensors herschikken met view
De methode .view() maakt een nieuw view van de tensor met de opgegeven vorm zonder de originele tensor te wijzigen. Het totale aantal elementen moet gelijk blijven.
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}")
Tensors herschikken met reshape
De .reshape()-methode lijkt op .view(), maar kan situaties aan waarbij de tensor niet aaneengesloten in het geheugen is opgeslagen. Deze methode wijzigt de originele tensor niet.
12345import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
Gebruik van Negatieve Dimensies
Het is mogelijk om -1 te gebruiken in de vorm, zodat PyTorch de grootte van één dimensie kan afleiden op basis van het totale aantal elementen.
12345import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
Uitleg over Tensor Views
Een view van een tensor deelt dezelfde data met de oorspronkelijke tensor. Wijzigingen in de view beïnvloeden de originele tensor en omgekeerd.
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)
Dimensies wijzigen
De volgende twee methoden maken het mogelijk om dimensies toe te voegen of te verwijderen:
unsqueeze(dim)voegt een nieuwe dimensie toe op de opgegeven positie;squeeze(dim)verwijdert dimensies met grootte 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}")
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 5
Vormen en Dimensies in PyTorch
Veeg om het menu te tonen
Net als bij NumPy-arrays bepaalt de vorm van een tensor de dimensies. De vorm van een tensor kan worden bekeken met het attribuut .shape:
123import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
Tensors herschikken met view
De methode .view() maakt een nieuw view van de tensor met de opgegeven vorm zonder de originele tensor te wijzigen. Het totale aantal elementen moet gelijk blijven.
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}")
Tensors herschikken met reshape
De .reshape()-methode lijkt op .view(), maar kan situaties aan waarbij de tensor niet aaneengesloten in het geheugen is opgeslagen. Deze methode wijzigt de originele tensor niet.
12345import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
Gebruik van Negatieve Dimensies
Het is mogelijk om -1 te gebruiken in de vorm, zodat PyTorch de grootte van één dimensie kan afleiden op basis van het totale aantal elementen.
12345import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
Uitleg over Tensor Views
Een view van een tensor deelt dezelfde data met de oorspronkelijke tensor. Wijzigingen in de view beïnvloeden de originele tensor en omgekeerd.
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)
Dimensies wijzigen
De volgende twee methoden maken het mogelijk om dimensies toe te voegen of te verwijderen:
unsqueeze(dim)voegt een nieuwe dimensie toe op de opgegeven positie;squeeze(dim)verwijdert dimensies met grootte 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}")
Bedankt voor je feedback!