在 pytorch 中合并两个张量



Tensor a:

tensor([[1, 2, 3],
[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])

张量 b:

tensor([4,4,4,4])

问题1:

如何合并两个张量并得到结果 c:

tensor([[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4]])

问题2:如何除以张量c并得到原始a和b。

问题 1:合并两个张量 -

torch.cat((a, b.unsqueeze(1)), 1)
>>> tensor([[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4]])

首先,我们使用torch.unsqueeze在张量中添加单个dimb以匹配adim为concanate。然后使用 torch.cat 连接张量ab

问题2:

a = c[:][:,:-1]
a
>>> tensor([[1, 2, 3],
[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])
b = c[:][:,-1:].squeeze(1)
b
>>> tensor([4, 4, 4, 4])

你必须稍微修改张量 b:

a = torch.tensor([[1, 2, 3],
[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])
b = torch.tensor([4,4,4,4])
b = b.reshape(1, 4)

然后你得到你的"连接"张量:

c = torch.cat((a, torch.t(b)), 1)

向后:

a1 = c[:,:-1]
b1 = torch.t(c[:,-1:])

最新更新