Функция torch.moveaxis в PyTorch


Pytorch torch 参考手册Справочное руководство Pytorch torch

torch.moveaxisэто функция в PyTorch, используемая для перемещения осей тензора. Она перемещает указанные оси на новые позиции и возвращает новое представление тензора.

Эта функция такая же, какtorch.movedimОн имеет ту же функциональность, за исключением того, что имена параметров различаются (moveaxis использует "axis", а movedim использует "dim").

Определение функции

torch.moveaxis(input, source, destination)

Parameters:

  • input(Tensor): Входной тензор.
  • source(int или tuple of int): Исходные индексы осей для перемещения. Может быть целым числом или кортежем индексов осей.
  • destination(int или tuple of int): Индексы целевых позиций. Может быть целым числом или кортежем индексов осей, и его длина должна совпадать с source.

Возвращаемое значение:

  • torch.Tensor: Возвращает представление тензора после перемещения осей.

Примеры использования

Пример

import torch

# Создать тензор с формой (batch, seq_len, feature)
x = torch.randn(32, 10, 128)

# Переместить последнее измерение в первую позицию
y = torch.moveaxis(x, -1, 0)

print("Исходная форма:", x.shape)
print("Форма после перемещения:", y.shape)

Результат вывода:

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

Пример

import torch

# Создать четырёхмерный тензор (time, channel, height, width)
x = torch.randn(10, 3, 32, 32)

# Переместить измерение time в конец
y = torch.moveaxis(x, 0, -1)

print("Исходная форма:", x.shape)
print("Форма после перемещения:", y.shape)

Результат вывода:

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

Пример

import torch

# Переместить несколько осей одновременно
x = torch.randn(2, 3, 4, 5)

# Переместить оси 0 и 1 в позиции 2 и 3 одновременно
y = torch.moveaxis(x, source=(0, 1), destination=(2, 3))

print("Исходная форма:", x.shape)
print("Форма после перемещения:", y.shape)

Результат вывода:

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

Примечание:torch.moveaxisВозвращает представление, а не копию, поэтому операция эффективна. Эта функция часто используется для настройки форм данных под различные фреймворки или API глубокого обучения.


Pytorch torch 参考手册Справочное руководство Pytorch torch

Другие расширения