Formen und Dimensionen in PyTorch
Ähnlich wie bei NumPy-Arrays bestimmt die Form eines Tensors dessen Dimensionen. Die Form eines Tensors kann mit dem Attribut .shape überprüft werden:
123import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
Umformen von Tensors mit view
Die Methode .view() erstellt eine neue Ansicht des Tensors mit der angegebenen Form ohne den ursprünglichen Tensor zu verändern. Die Gesamtanzahl der Elemente muss gleich bleiben.
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}")
Umformen von Tensors mit reshape
Die Methode .reshape() ist ähnlich wie .view(), kann jedoch auch Fälle behandeln, in denen der Tensor nicht zusammenhängend im Speicher abgelegt ist. Sie verändert zudem nicht den ursprünglichen Tensor.
12345import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
Verwendung negativer Dimensionen
Mit -1 in der Form kann PyTorch die Größe einer Dimension basierend auf der Gesamtanzahl der Elemente automatisch bestimmen.
12345import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
Verständnis von Tensor-Views
Eine Ansicht (View) eines Tensors teilt sich die gleichen Daten mit dem ursprünglichen Tensor. Änderungen an der Ansicht wirken sich auf den Original-Tensor aus und umgekehrt.
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)
Dimensionen ändern
Die folgenden zwei Methoden ermöglichen das Hinzufügen oder Entfernen von Dimensionen:
unsqueeze(dim)fügt an der angegebenen Position eine neue Dimension hinzu;squeeze(dim)entfernt Dimensionen der Größe 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}")
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 5
Formen und Dimensionen in PyTorch
Swipe um das Menü anzuzeigen
Ähnlich wie bei NumPy-Arrays bestimmt die Form eines Tensors dessen Dimensionen. Die Form eines Tensors kann mit dem Attribut .shape überprüft werden:
123import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
Umformen von Tensors mit view
Die Methode .view() erstellt eine neue Ansicht des Tensors mit der angegebenen Form ohne den ursprünglichen Tensor zu verändern. Die Gesamtanzahl der Elemente muss gleich bleiben.
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}")
Umformen von Tensors mit reshape
Die Methode .reshape() ist ähnlich wie .view(), kann jedoch auch Fälle behandeln, in denen der Tensor nicht zusammenhängend im Speicher abgelegt ist. Sie verändert zudem nicht den ursprünglichen Tensor.
12345import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
Verwendung negativer Dimensionen
Mit -1 in der Form kann PyTorch die Größe einer Dimension basierend auf der Gesamtanzahl der Elemente automatisch bestimmen.
12345import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
Verständnis von Tensor-Views
Eine Ansicht (View) eines Tensors teilt sich die gleichen Daten mit dem ursprünglichen Tensor. Änderungen an der Ansicht wirken sich auf den Original-Tensor aus und umgekehrt.
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)
Dimensionen ändern
Die folgenden zwei Methoden ermöglichen das Hinzufügen oder Entfernen von Dimensionen:
unsqueeze(dim)fügt an der angegebenen Position eine neue Dimension hinzu;squeeze(dim)entfernt Dimensionen der Größe 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}")
Danke für Ihr Feedback!