如何在pytorch中连接两个不同尺寸的张量
Posted
技术标签:
【中文标题】如何在pytorch中连接两个不同尺寸的张量【英文标题】:how to concate two tensors with different dimensions in pytorch 【发布时间】:2022-01-12 11:26:22 【问题描述】:我在 pytorch 中有两个具有这些形状的张量:
torch.Size([64, 100]) 和 torch.Size([64, 100, 256])
我想通过torch.cat
连接它们,但它们的形状和大小应该相同。所以我得到这个错误:
RuntimeError: Tensors must have the same number of dimensions: got 2 and 3
我应该怎么做才能解决这个问题?如何将 2d PyTorch 张量转换为 3d 张量或者如何将 3d PyTorch 张量转换为 2d 张量而不丢失任何数据?或任何其他想法?
【问题讨论】:
【参考方案1】:根据您要对这两个张量做什么,您可以考虑在最后一个轴上进行连接,以便生成的张量形状为(64, 100, 257)
。这需要您首先在第一个张量上解压单个维度:
>>> x, y = torch.rand(64, 100), torch.rand(64, 100, 256)
>>> z = torch.cat((x[..., None], y), -1)
>>> z.shape
torch.Size([64, 100, 257])
【讨论】:
以上是关于如何在pytorch中连接两个不同尺寸的张量的主要内容,如果未能解决你的问题,请参考以下文章