Función PyTorch torch.moveaxis


Pytorch torch 参考手册Manual de referencia de Pytorch torch

torch.moveaxisEs una función en PyTorch utilizada para mover ejes de tensores. Mueve el eje especificado a una nueva posición y devuelve una nueva vista del tensor.

Esta función estorch.movedimfuncionalmente igual, solo que los nombres de los parámetros difieren (moveaxis usa "axis" mientras que movedim usa "dim").

Definición de la función

torch.moveaxis(input, source, destination)

Parámetros:

  • input(Tensor): el tensor de entrada.
  • source(int o tupla de ints): los índices de los ejes originales a mover. Puede ser un entero o una tupla de índices de ejes.
  • destination(int o tupla de ints): los índices de las posiciones de destino. Puede ser un entero o una tupla de índices de ejes, y la longitud debe ser la misma que la de source.

Valor de retorno:

  • torch.Tensor: Devuelve la vista del tensor con los ejes movidos.

Ejemplo de uso

Ejemplo

import torch

# Crear un tensor de forma (batch, seq_len, feature)
x = torch.randn(32, 10, 128)

# Mover la última dimensión a la primera posición
y = torch.moveaxis(x, -1, 0)

print("Forma original:", x.shape)
print("Forma después del movimiento:", y.shape)

El resultado de salida es:

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

Ejemplo

import torch

# Crear un tensor de cuatro dimensiones (time, channel, height, width)
x = torch.randn(10, 3, 32, 32)

# Mover la dimensión time al final
y = torch.moveaxis(x, 0, -1)

print("Forma original:", x.shape)
print("Forma después del movimiento:", y.shape)

El resultado de salida es:

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

Ejemplo

import torch

# Mover varios ejes a la vez
x = torch.randn(2, 3, 4, 5)

# Mover los ejes 0 y 1 juntos a las posiciones de los ejes 2 y 3
y = torch.moveaxis(x, source=(0, 1), destination=(2, 3))

print("Forma original:", x.shape)
print("Forma después del movimiento:", y.shape)

El resultado de salida es:

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

Nota:torch.moveaxisDevuelve una vista, no una copia, por lo que la operación es eficiente. Esta función se utiliza a menudo para ajustar la forma de los datos y adaptarse a diferentes marcos de aprendizaje profundo o APIs.


Pytorch torch 参考手册Manual de referencia de Pytorch torch

Otras extensiones