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
我有一个[71 32 1]
形状的张量。
我想通过填充零个矢量来使其形状为[100 32 1]
。
我尝试通过连接形状为零的填充矢量[29 32 1]。我收到上面的错误。
我尝试使用[29 32 1]
形状的零填充矢量,仍然出现错误。
如何创建所需的张量?
答案 0 :(得分:5)
为了更好地为您提供帮助,您需要发布导致错误的code,没有错误,我们只是在这里猜测...
从收到的错误消息中猜测:
Sizes of tensors must match except in dimension 2
pytorch尝试沿第二维连接,而您尝试沿第一维连接。
Got 32 and 71 in dimension 0
您似乎想要合并的张量的尺寸与您预期的不一样,您有一个(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])
或者,您可以使用functional.pad
:
from torch.nn import functional as F
px = F.pad(x, (0, 0, 0, 0, 29, 0))