PyTorch torch.moveaxis-Funktion


Pytorch torch 参考手册PyTorch torch Referenzhandbuch

torch.moveaxisist eine Funktion in PyTorch, die verwendet wird, um Tensorachsen zu verschieben. Sie verschiebt die angegebenen Achsen an neue Positionen und gibt eine neue Tensoransicht zurück.

Diese Funktion ist dieselbe wietorch.movedimEs hat die gleiche Funktionalität, außer dass die Parameternamen abweichen (moveaxis verwendet "axis", während movedim "dim" verwendet).

Funktionsdefinition

torch.moveaxis(input, source, destination)

Parameters:

  • input(Tensor): Der Eingabe-Tensor.
  • source(int oder Tupel von int): Die ursprünglichen Achsenindizes, die verschoben werden sollen. Kann eine Ganzzahl oder ein Tupel von Achsenindizes sein.
  • destination(int oder Tupel von int): Die Zielpositionsindizes. Kann eine Ganzzahl oder ein Tupel von Achsenindizes sein, und ihre Länge muss mit source übereinstimmen.

Rückgabewert:

  • torch.Tensor: Gibt die Tensoransicht nach dem Verschieben der Achsen zurück.

Anwendungsbeispiele

Beispiel

import torch

# Erstellt einen Tensor mit der Form (batch, seq_len, feature)
x = torch.randn(32, 10, 128)

# Verschiebe die letzte Dimension an die erste Position
y = torch.moveaxis(x, -1, 0)

print("Ursprüngliche Form:", x.shape)
print("Form nach dem Verschieben:", y.shape)

Das Ausgabeergebnis ist:

原始形状: torch.Size([32, 10, 128])
移动后形状: torch.Size([128, 10, 32])

Beispiel

import torch

# Erstellt einen vierdimensionalen Tensor (time, channel, height, width)
x = torch.randn(10, 3, 32, 32)

# Verschiebe die Zeitdimension an das Ende
y = torch.moveaxis(x, 0, -1)

print("Ursprüngliche Form:", x.shape)
print("Form nach dem Verschieben:", y.shape)

Das Ausgabeergebnis ist:

原始形状: torch.Size([10, 3, 32, 32])
移动后形状: torch.Size([3, 32, 32, 10])

Beispiel

import torch

# Verschiebe mehrere Achsen auf einmal
x = torch.randn(2, 3, 4, 5)

# Verschiebe die Achsen 0 und 1 gemeinsam an die Positionen 2 und 3
y = torch.moveaxis(x, source=(0, 1), destination=(2, 3))

print("Ursprüngliche Form:", x.shape)
print("Form nach dem Verschieben:", y.shape)

Das Ausgabeergebnis ist:

原始形状: torch.Size([2, 3, 4, 5])
移动后形状: torch.Size([4, 5, 2, 3])

Hinweis:torch.moveaxisEs gibt eine Ansicht zurück, keine Kopie, daher ist die Operation effizient. Diese Funktion wird häufig verwendet, um Datenformen anzupassen, damit sie zu verschiedenen Deep-Learning-Frameworks oder APIs passen.


Pytorch torch 参考手册PyTorch torch Referenzhandbuch

Andere Erweiterungen