在Pytorch中连接两个张量

tst*_*eby 2 python machine-learning deep-learning pytorch tensor

RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 2. Got 32 and 71 in dimension 0 at /pytorch/aten/src/THC/generic/THCTensorMath.cu:87
Run Code Online (Sandbox Code Playgroud)

我有一个张量的形状[71 32 1]

我想[100 32 1]通过填充零向量来使其形状。

我尝试通过连接形状为零的填充矢量[29 32 1]。我收到上面的错误。

我尝试使用形状为零的填充矢量[29 32 1],但仍然出现错误。

如何创建所需的张量?

Sha*_*hai 11

为了更好地帮助您,您需要发布导致错误的代码,没有它,我们只是在这里猜测...

从错误消息中猜测到:

1。

Sizes of tensors must match except in dimension 2
Run Code Online (Sandbox Code Playgroud)

pytorch尝试沿着第二维连接,而您尝试沿着第一维连接。

2。

Got 32 and 71 in dimension 0
Run Code Online (Sandbox Code Playgroud)

似乎要连接的张量的尺寸与您期望的不一样,其中一个具有尺寸,(72, ...)而另一个具有(32, ...)
您还需要检查一下。

工作代码

这是concat的示例

import torch

x = torch.rand((71, 32, 1))
# x.shape = torch.Size([71, 32, 1])
px = torch.cat((torch.zeros(29, 32, 1, dtype=x.dtype, device=x.device), x), dim=0)
# px.shape = torch.Size([100, 32, 1])
Run Code Online (Sandbox Code Playgroud)

另外,您可以使用functional.pad

from torch.nn import functional as F

px = F.pad(x, (0, 0, 0, 0, 29, 0))
Run Code Online (Sandbox Code Playgroud)