Функция PyTorch torch.transpose
Справочное руководство PyTorch torch
torch.transposeЭто функция в PyTorch, используемая для обмена двух измерений тензора. Она возвращает транспонированное представление входного тензора.
Это часто используемая операция в глубоком обучении для изменения формы данных в соответствии с различными вычислительными потребностями.
Определение функции
torch.transpose(input, dim0, dim1)
Parameters:
input(Tensor): Входной тензор.dim0(int): Первое измерение для перестановки.dim1(int): Второе измерение для перестановки.
Возвращаемое значение:
torch.Tensor: Возвращает транспонированное представление тензора.
Примеры использования
Пример 1: Транспонирование 2D-матрицы
Пример
import torch
# Создать матрицу 3x4
x = torch.randn(3, 4)
# Транспонирование
y = torch.transpose(x, 0, 1)
print("Исходная форма:", x.shape)
print("Форма после транспонирования:", y.shape)
print("Оригинал:")
print(x)
print("После транспонирования:")
print(y)
# Создать матрицу 3x4
x = torch.randn(3, 4)
# Транспонирование
y = torch.transpose(x, 0, 1)
print("Исходная форма:", x.shape)
print("Форма после транспонирования:", y.shape)
print("Оригинал:")
print(x)
print("После транспонирования:")
print(y)
Вывод:
原始形状: torch.Size([3, 4])
转置后形状: torch.Size([4, 3])
原始:
tensor([[ 0.3364, -0.7844, 0.9760, 0.4381],
[ 0.7865, -1.2775, 0.5767, -0.5268],
[-0.6399, -0.6743, -0.2972, -0.4781]])
转置后:
tensor([[ 0.3364, 0.7865, -0.6399],
[-0.7844, -1.2775, -0.6743],
[ 0.9760, 0.5767, -0.2972],
[ 0.4381, -0.5268, -0.4781]])
Пример 2: Транспонирование многомерного тензора
Пример
import torch
# Создать 3D-тензор
x = torch.randn(2, 3, 4)
# Поменять местами dim=1 и dim=2
y = torch.transpose(x, 1, 2)
print("Исходная форма:", x.shape)
print("Форма после транспонирования:", y.shape)
# Создать 3D-тензор
x = torch.randn(2, 3, 4)
# Поменять местами dim=1 и dim=2
y = torch.transpose(x, 1, 2)
print("Исходная форма:", x.shape)
print("Форма после транспонирования:", y.shape)
Вывод:
原始形状: torch.Size([2, 3, 4]) 转置后形状: torch.Size([2, 4, 3])
Примечания
torch.transposeОн возвращает представление, а не копию.- Для 2D-тензоров можно также использовать
tensor.t()метод.
Другие расширения