如何在pytorch中合并两个不同形状的Tensor?

raogr8fs  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(300)

我目前正在执行以下操作:

repeat_vals = [x.shape[0] // pfinal.shape[0]] + [-1] * (len(pfinal.shape) - 1)

x = torch.cat((x, pfinal.expand(*repeat_vals)), dim=-1)

x的形状是[91,6],final的形状是[6,6],但我得到以下错误:

RuntimeError: The expanded size of the tensor (15) must match the existing size (6) at non-singleton dimension 0.  Target sizes: [15, -1].  Tensor sizes: [6, 6]
bqf10yzr

bqf10yzr1#

您不能扩展非单一值。此外,您不能强制len(x)len(pfinal)的倍数,因此,根据您的需要,您可以增加所需的数字,然后将超出的部分切掉。您可以修改以下内容以满足您的需要:

>>> reps = len(x) // len(pfinal) + 1
>>> res = pfinal.repeat(reps, *[1]*(pfinal.ndim - 1))[:len(x)]

相关问题