Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Formen und Dimensionen in PyTorch | Einführung in PyTorch
PyTorch-Grundlagen

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

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

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.

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

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.

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

Verwendung negativer Dimensionen

Mit -1 in der Form kann PyTorch die Größe einer Dimension basierend auf der Gesamtanzahl der Elemente automatisch bestimmen.

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

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.

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

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.
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

Wie lautet die Form des Tensors nach Ausführung des folgenden Codes?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 9

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 5

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

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

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.

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

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.

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

Verwendung negativer Dimensionen

Mit -1 in der Form kann PyTorch die Größe einer Dimension basierend auf der Gesamtanzahl der Elemente automatisch bestimmen.

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

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.

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

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.
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

Wie lautet die Form des Tensors nach Ausführung des folgenden Codes?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 9
some-alt