Функция swapaxes
Функция swapaxes меняет местами две указанные оси тензора.
Это полезно, когда нужно изменить порядок измерений, например,
переставить каналы и ширину в изображении. Первым параметром
передаётся тензор, вторым и третьим - индексы осей, которые нужно поменять.
Синтаксис
torch.swapaxes(input, axis0, axis1)
Метод тензора:
tensor.swapaxes(axis0, axis1)
Пример
Давайте поменяем оси у двумерного тензора:
import torch
t = torch.tensor([
[1, 2, 3],
[4, 5, 6],
])
res = torch.swapaxes(t, 0, 1)
print(res)
Результат выполнения кода:
tensor([
[1, 4],
[2, 5],
[3, 6],
])
Пример
Используем метод тензора для перестановки осей:
import torch
t = torch.tensor([
[1, 2, 3],
[4, 5, 6],
])
res = t.swapaxes(0, 1)
print(res)
Результат выполнения кода:
tensor([
[1, 4],
[2, 5],
[3, 6],
])
Пример
Работа с трёхмерным тензором, меняем ось глубины и высоты:
import torch
t = torch.tensor([
[
[1, 2],
[3, 4],
],
[
[5, 6],
[7, 8],
],
])
res = torch.swapaxes(t, 0, 1)
print(res)
Результат выполнения кода:
tensor([
[
[1, 2],
[5, 6],
],
[
[3, 4],
[7, 8],
],
])
Пример
Используем отрицательные индексы для указания осей:
import torch
t = torch.tensor([
[1, 2, 3],
[4, 5, 6],
])
res = torch.swapaxes(t, -2, -1)
print(res)
Результат выполнения кода:
tensor([
[1, 4],
[2, 5],
[3, 6],
])