Функция moveaxis
Функция moveaxis перемещает оси тензора
из исходных позиций в указанные. Первым параметром
функция принимает тензор. Вторым параметром
передаются исходные позиции осей. Третьим параметром
указываются целевые позиции.
Синтаксис
torch.moveaxis(tensor, source, destination)
Пример
Давайте создадим трехмерный тензор и переместим
ось с индексом 0 на позицию 2:
import torch
t = torch.tensor([
[
[1, 2],
[3, 4]
],
[
[5, 6],
[7, 8]
]
])
print("Original shape:", t.shape)
res = torch.moveaxis(t, 0, 2)
print("New shape:", res.shape)
Результат выполнения кода:
Original shape: torch.Size([2, 2, 2])
New shape: torch.Size([2, 2, 2])
Пример
Давайте переместим сразу несколько осей, указав списки позиций:
import torch
t = torch.tensor([
[
[1, 2, 3],
[4, 5, 6]
],
[
[7, 8, 9],
[10, 11, 12]
]
])
print("Original shape:", t.shape)
res = torch.moveaxis(t, [0, 1], [1, 2])
print("New shape:", res.shape)
Результат выполнения кода:
Original shape: torch.Size([2, 2, 3])
New shape: torch.Size([2, 2, 3])
Пример
Давайте переместим последнюю ось на позицию первой с помощью отрицательных индексов:
import torch
t = torch.tensor([
[
[1, 2],
[3, 4]
],
[
[5, 6],
[7, 8]
]
])
print("Original shape:", t.shape)
res = torch.moveaxis(t, -1, 0)
print("New shape:", res.shape)
Результат выполнения кода:
Original shape: torch.Size([2, 2, 2])
New shape: torch.Size([2, 2, 2])
Пример
Давайте посмотрим на изменение данных при перемещении оси на примере двумерного тензора:
import torch
t = torch.tensor([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
print("Original tensor:")
print(t)
res = torch.moveaxis(t, 1, 0)
print("\nTensor after moving axis:")
print(res)
Результат выполнения кода:
Original tensor:
tensor([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
Tensor after moving axis:
tensor([
[1, 4, 7],
[2, 5, 8],
[3, 6, 9]
])