Функция vstack
Функция vstack выполняет вертикальную стекировку (объединение по строкам)
переданных тензоров. Первым параметром она принимает последовательность тензоров
в виде кортежа или списка. Вторым параметром можно передать тензор, который будет
использоваться в качестве выходного тензора.
Функция автоматически добавляет размерность для одномерных тензоров,
превращая их в двумерные, а затем объединяет их по оси 0.
Синтаксис
torch.vstack(tensors)
Пример
Давайте объединим два одномерных тензора по вертикали:
import torch
t1 = torch.tensor([1, 2, 3])
t2 = torch.tensor([4, 5, 6])
res = torch.vstack((t1, t2))
print(res)
Результат выполнения кода:
tensor([
[1, 2, 3],
[4, 5, 6]
])
Пример
Объединим три одномерных тензора разной длины:
import torch
t1 = torch.tensor([1, 2])
t2 = torch.tensor([3, 4])
t3 = torch.tensor([5, 6])
res = torch.vstack((t1, t2, t3))
print(res)
Результат выполнения кода:
tensor([
[1, 2],
[3, 4],
[5, 6]
])
Пример
Объединим двумерные тензоры одинаковой формы:
import torch
t1 = torch.tensor([[1, 2, 3], [4, 5, 6]])
t2 = torch.tensor([[7, 8, 9], [10, 11, 12]])
res = torch.vstack((t1, t2))
print(res)
Результат выполнения кода:
tensor([
[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]
])
Пример
Пример с использованием параметра out для указания выходного тензора:
import torch
t1 = torch.tensor([1, 2, 3])
t2 = torch.tensor([4, 5, 6])
out = torch.empty(2, 3)
res = torch.vstack((t1, t2), out=out)
print(res)
print(out is res)
Результат выполнения кода:
tensor([
[1, 2, 3],
[4, 5, 6]
])
True