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