从技术上讲,torch.STACK([t1,t1,t1],dim=1)和torch.hSTACK([t1,t1,t1])方法执行相同的操作,即它们都水平堆叠向量. 但是,当我在同一个向量上执行这两个操作时,它们产生了两个不同的输出,有人能解释一下为什么吗?
采用张量T1:
# Code :
t1 = torch.arange(1.,10.)
t1,t1.shape
# Output :
(tensor([1., 2., 3., 4., 5., 6., 7., 8., 9.]), torch.Size([9]))
使用torch.栈([t1,t1,t1],dim=1)
# Code :
t1_stack = torch.stack([t1,t1,t1],dim=1)
# dim value lies between [-2,1]
# -2 and 0 stack vertically
# -1 and 1 stack Horizontally
t1_stack,t1_stack.shape
# Output :
(tensor([[5., 5., 5.],
[2., 2., 2.],
[3., 3., 3.],
[4., 4., 4.],
[5., 5., 5.],
[6., 6., 6.],
[7., 7., 7.],
[8., 8., 8.],
[9., 9., 9.]]),
torch.Size([9, 3]))
使用torch.h栈([t1,t1,t1])
# Code :
h_stack = torch.hstack([t1,t1,t1])
h_stack,h_stack.shape
# Output :
(tensor([5., 2., 3., 4., 5., 6., 7., 8., 9., 5., 2., 3., 4., 5., 6., 7., 8., 9.,
5., 2., 3., 4., 5., 6., 7., 8., 9.]),
torch.Size([27]))
对于相同的矢量,使用不同的水平叠加方法时,可以得到两种不同的输出