Fonction torch.moveaxis de PyTorch


Pytorch torch 参考手册Manuel de référence Pytorch torch

torch.moveaxisest une fonction de PyTorch utilisée pour déplacer les axes d'un tenseur. Elle déplace les axes spécifiés vers de nouvelles positions et renvoie une nouvelle vue du tenseur.

Cette fonction est identique àtorch.movedimIl a la même fonctionnalité, sauf que les noms des paramètres diffèrent (moveaxis utilise "axis" alors que movedim utilise "dim").

Définition de fonction

torch.moveaxis(input, source, destination)

Parameters:

  • input(Tensor) : Le tenseur d'entrée.
  • source(int ou tuple d'int) : Les indices d'axe d'origine à déplacer. Peut être un entier ou un tuple d'indices d'axe.
  • destination(int ou tuple d'int) : Les indices de position cible. Peut être un entier ou un tuple d'indices d'axe, et sa longueur doit être identique à celle de source.

Valeur de retour:

  • torch.Tensor: Renvoie la vue du tenseur après déplacement des axes.

Exemples d'utilisation

Exemple

import torch

# Créer un tenseur de forme (batch, seq_len, feature)
x = torch.randn(32, 10, 128)

# Déplacer la dernière dimension à la première position
y = torch.moveaxis(x, -1, 0)

print("Forme d'origine :", x.shape)
print("Forme après déplacement :", y.shape)

Le résultat de sortie est:

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

Exemple

import torch

# Créer un tenseur à quatre dimensions (temps, canal, hauteur, largeur)
x = torch.randn(10, 3, 32, 32)

# Déplacer la dimension temporelle à la fin
y = torch.moveaxis(x, 0, -1)

print("Forme d'origine :", x.shape)
print("Forme après déplacement :", y.shape)

Le résultat de sortie est:

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

Exemple

import torch

# Déplacer plusieurs axes à la fois
x = torch.randn(2, 3, 4, 5)

# Déplacer les axes 0 et 1 vers les positions 2 et 3 ensemble
y = torch.moveaxis(x, source=(0, 1), destination=(2, 3))

print("Forme d'origine :", x.shape)
print("Forme après déplacement :", y.shape)

Le résultat de sortie est:

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

Remarque :torch.moveaxisIl renvoie une vue, pas une copie, donc l'opération est efficace. Cette fonction est souvent utilisée pour ajuster les formes de données afin de les adapter à différents frameworks d'apprentissage profond ou API.


Pytorch torch 参考手册Manuel de référence Pytorch torch

Autres extensions