Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность.
torch.cat
torch.cat(tensors, dim=0, * , out=None)
→ Тензор
Объединяет тензоры параметров. Тензоры должны быть одной широты или пустыми.
- параметр
- tensors (sequence of Tensors) - передать несколько тензоров в виде кортежа
-
dim (int , optional) – размерность тензорной связи. Возьмем для примера два измерения: 0 — строка, 1 — столбец... Вы можете выбрать несколько измерений соединяемых тензоров. Например, вы можете выбрать только (-2, -1, 0, 1) для двух двумерных тензоров, а если он трехмерный, вы можете выбрать только (-3, -2, -1, 0, 1). , 2)
- После моего теста -2 и 0 совпадают, -1 и 1 совпадают. Я предполагаю, что -1 и 0 - это пределы, а несколько справа - это несколько слева, и эффект одинаков слева направо.
import torch
t1 = torch.rand(2, 3)
t2 = torch.rand(2, 3)
t3 = torch.cat((t1, t2), dim=0)
print(t1)
print(t2)
print(t3)
t4 = torch.cat((t1, t2), dim=1)
print(t4)
вывод:
tensor([[0.7839, 0.1447, 0.4310],
[0.9642, 0.5121, 0.3178]])
tensor([[0.7691, 0.2200, 0.8842],
[0.6078, 0.9669, 0.9191]])
tensor([[0.7839, 0.1447, 0.4310],
[0.9642, 0.5121, 0.3178],
[0.7691, 0.2200, 0.8842],
[0.6078, 0.9669, 0.9191]])
tensor([[0.7839, 0.1447, 0.4310, 0.7691, 0.2200, 0.8842],
[0.9642, 0.5121, 0.3178, 0.6078, 0.9669, 0.9191]])
torch.stack
torch.stack(tensors, dim=0, * , out=None) → Tensor
Связать тензоры в новый тензор в соответствии с новым измерением
- параметр
- tensors (sequence of Tensors) – тензор, который необходимо сцепить
-
dim (int) – размерность вставки, которая должна быть между 0 и размерностью тензора после конкатенации.
- Это добавит одно измерение, а два двух измерения будут соединены в три измерения. затемнение может быть выбрано для параметров после подключения. Например, двухмерный — это [-3,2], трехмерный — [-4,3].
Этот вывод не выполняется, и смотреть на серию чисел нехорошо. Многомерность невооруженным глазом тоже выглядит не очень хорошо.