RuntimeError: Sizes of tensors must match except in dimension 1. Expected size 6272 but got size 8 for tensor number 1 in the list.
时间: 2023-11-06 08:33:18 浏览: 457
pytorch dataloader 取batch_size时候出现bug的解决方式
这个错误是因为在 torch.cat 操作中,除了第 1 维度以外,其他维度的大小应该是相同的,但是在你的代码中,两个 tensor 的维度不匹配。你可以检查一下两个 tensor 的维度,看看是哪个维度不匹配。另外,你可以尝试使用 reshape 或者 view 操作来修改 tensor 的维度,使其与另一个 tensor 的维度匹配。具体操作可以参考以下代码:
```
import torch
x1 = torch.randn(2, 3, 4)
x2 = torch.randn(2, 1, 4, 2)
# 检查维度是否匹配
if x1.size()[0] == x2.size()[0] and x1.size()[2:] == x2.size()[2:]:
# 修改维度
x1 = x1.view(x1.size(0), -1)
x2 = x2.view(x2.size(0), -1)
# 拼接 tensor
x = torch.cat((x1, x2), dim=1)
else:
print("Sizes of tensors do not match.")
```
在这个例子中,我们首先检查了两个 tensor 的维度是否匹配,然后使用 view 操作将 x1 和 x2 的维度修改为 [batch_size, -1],再使用 torch.cat 将它们拼接在一起。
阅读全文