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


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

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

Эта функция очень полезна при настройке формы тензора для конкретных операций, например при обработке данных изображений или подготовке входных данных нейронной сети.

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

torch.movedim(input, source, destination)

Parameters:

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

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

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

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

Пример

import torch

# Создать тензор с формой (batch, channel, height, width)
x = torch.randn(32, 3, 224, 224)

# Переместить измерение channel в последнее измерение
# Переместить с позиции 1 на позицию 3
y = torch.movedim(x, 1, 3)

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

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

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

Пример

import torch

# Создать тензор с формой (D0, D1, D2, D3)
x = torch.randn(2, 3, 4, 5)

# Переместить несколько измерений одновременно
# Переместить измерения 0 и 1 в позиции 2 и 3
y = torch.movedim(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])

Пример

import torch

# Преобразовать тензор изображения из (N, C, H, W) в (N, H, W, C)
# Это полезно при отправке данных в API, которые требуют, чтобы канал находился в последней позиции
images = torch.randn(16, 3, 64, 64)
images_permuted = torch.movedim(images, 1, 3)

print("Исходная форма (N, C, H, W):", images.shape)
print("Преобразованная форма (N, H, W, C):", images_permuted.shape)

Примечание:torch.movedimВозвращается представление, а не копия, поэтому операция эффективна. Существует также похожая функцияtorch.moveaxis, котораяtorch.movedimимеет ту же функциональность, но имена параметров отличаются.


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

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