Я хочу поместить один тензорный массив shape=(1,2)
поверх другого массива shape=(1,2)
через dim=1
, используя метод stack()
Pytorch.
>>> import numpy as np
>>> import torch
>>> np_a = np.array([[1,2]])
>>> np_b = np.array([[3,4]])
>>> print(np_a)
[[1 2]]
>>> print(np_b)
[[3 4]]
>>> t_a = torch.from_numpy(np_a)
>>> t_b = torch.from_numpy(np_b)
>>> print(t_a)
tensor([[1, 2]])
>>> print(t_b)
tensor([[3, 4]])
>>> t_stacked = torch.stack((t_a, t_b), dim=1)
>>> print(t_stacked)
tensor([[[1, 2],
[3, 4]]])
Полученный тензор имеет добавленныйразмерность и теперь имеет shape=(1,2,2)
.Почему stack()
Пайторха не ведет себя как vstack()
Нампи?См. Ниже:
>>> import numpy as np
>>> np_a = np.array([[1,2]])
>>> np_b = np.array([[3,4]])
>>> stacked = np.vstack((np_a, np_b))
>>> print(stacked)
[[1 2]
[3 4]]
Как сделать так, чтобы Pytorch не добавлял измерение?