1、问题描述:RuntimeError: 0D or 1D target tensor expected, multi-target not supported

1.1一种可能的原因:
参考了一些文章,最后发现问题在于标签的维度有问题,因为我是从DataFrame中读取的标签,然后转为 np.array,过程如下:
1.1.1 读取的DataFrame的标签

1.1.2 转为nparray并打乱

1.1.3 转为list

可以看到,这里面的标签list实际上多了一个维度,因此,我们需要将标签进行降维,使用squeeze(-1)
1.1.4 示例
all_labels = np.array(all_labels)[index]
all_labels = all_labels.squeeze(-1)
print(all_labels)

2、类似问题
还有类似的 torch.size([8]) 和[8, 1]不匹配的问题,都可以尝试用squeeze()的方法解决
本文介绍了解决PyTorch中因标签维度问题导致的RuntimeError错误,具体表现为0D或1D目标张量不支持多标签的情况。通过调整标签维度,如使用numpy的squeeze方法,可以有效避免该问题。
5996

被折叠的 条评论
为什么被折叠?



