Функция movedim
Функция movedim перемещает измерение тензора
из исходной позиции в новую. Первым параметром
функция принимает тензор. Вторым параметром
указывается исходная позиция оси. Третьим
параметром - целевая позиция оси.
Функция возвращает новый тензор с переставленными
измерениями.
Синтаксис
torch.movedim(input, source, destination)
Пример
Давайте создадим трехмерный тензор и переместим
ось с индексом 0 в конец:
import torch
t = torch.tensor([
[[1, 2],
[3, 4]],
[[5, 6],
[7, 8]],
])
res = torch.movedim(t, 0, -1)
print(res.shape)
Результат выполнения кода:
torch.Size([2, 2, 2])
Пример
Давайте переместим сразу несколько осей, указав списки исходных и целевых позиций:
import torch
t = torch.randn(2, 3, 4, 5)
res = torch.movedim(t, [1, 2], [0, 3])
print(res.shape)
Результат выполнения кода:
torch.Size([3, 4, 5, 2])
Пример
Давайте переместим ось с конца в начало, используя отрицательные индексы:
import torch
t = torch.randn(2, 3, 4, 5)
res = torch.movedim(t, -1, 0)
print(res.shape)
Результат выполнения кода:
torch.Size([5, 2, 3, 4])