Метод t_
Метод t_ класса Tensor выполняет транспонирование двумерного тензора, изменяя его непосредственно на месте (in-place). В отличие от метода t, который возвращает новый транспонированный тензор, t_ модифицирует исходный объект, что позволяет экономить память при работе с большими данными. Метод применяется только к двумерным тензорам.
Синтаксис
tensor.t_()
Пример
Давайте создадим двумерный тензор размера 2x3 и транспонируем его на месте:
import torch
t = torch.tensor([
[1, 2, 3],
[4, 5, 6],
])
print("Исходный тензор:")
print(t)
print("Размер:", t.shape)
t.t_()
print("\nТранспонированный тензор:")
print(t)
print("Размер:", t.shape)
Результат выполнения кода:
Исходный тензор:
tensor([
[1, 2, 3],
[4, 5, 6],
])
Размер: torch.Size([2, 3])
Транспонированный тензор:
tensor([
[1, 4],
[2, 5],
[3, 6],
])
Размер: torch.Size([3, 2])
Пример
Давайте сравним поведение методов t и t_:
import torch
t = torch.tensor([
[1, 2],
[3, 4],
[5, 6],
])
print("Исходный тензор t:")
print(t)
# Метод t возвращает новый тензор
t2 = t.t()
print("\nРезультат t.t():")
print(t2)
print("Исходный тензор t не изменился:")
print(t)
# Метод t_ изменяет тензор на месте
t.t_()
print("\nПосле t.t_():")
print(t)
Результат выполнения кода:
Исходный тензор t:
tensor([
[1, 2],
[3, 4],
[5, 6],
])
Результат t.t():
tensor([
[1, 3, 5],
[2, 4, 6],
])
Исходный тензор t не изменился:
tensor([
[1, 2],
[3, 4],
[5, 6],
])
После t.t_():
tensor([
[1, 3, 5],
[2, 4, 6],
])
Пример
Метод t_ можно использовать в цепочках операций, но нужно помнить, что он изменяет тензор на месте:
import torch
t = torch.tensor([
[1, 2, 3],
[4, 5, 6],
])
print("Исходный тензор:")
print(t)
# Транспонируем и сразу применяем другую операцию
t.t_().add_(10)
print("\nПосле t.t_().add_(10):")
print(t)
Результат выполнения кода:
Исходный тензор:
tensor([
[1, 2, 3],
[4, 5, 6],
])
После t.t_().add_(10):
tensor([
[11, 14],
[12, 15],
[13, 16],
])
Смотрите также
-
метод
t,
который возвращает новый транспонированный тензор -
метод
transpose,
который выполняет транспонирование по указанным осям -
метод
transpose_,
который выполняет транспонирование на месте по указанным осям -
атрибут
T,
который возвращает транспонированный тензор