The*_*fer 15 python machine-learning pytorch tensor
所以我想对一些(3, 50, 50)图片进行分类。首先,我从没有数据加载器或批处理的文件中加载了数据集,它起作用了。现在,在添加了这两件事之后,我得到了那个错误:
RuntimeError: multi-target not supported at /pytorch/aten/src/THCUNN/generic/ClassNLLCriterion.cu:15
Run Code Online (Sandbox Code Playgroud)
我在互联网上找到了很多答案,主要是使用,target.squeeze(1)但对我不起作用。我的目标批次如下所示:
tensor([[1, 0],
[1, 0],
[1, 0],
[1, 0],
[1, 0],
[1, 0],
[1, 0],
[1, 0]], device='cuda:0')
Run Code Online (Sandbox Code Playgroud)
应该没问题吧?
这里是完整的代码(请注意,我只创建了模型的结构,之后我将在其上应用完整且正确的数据集,因为我还没有完整的数据,只有 32 张图片且没有标签,这就是为什么我添加torch.tensor([1, 0])为所有标签的占位符):
RuntimeError: multi-target not supported at /pytorch/aten/src/THCUNN/generic/ClassNLLCriterion.cu:15
Run Code Online (Sandbox Code Playgroud)
所以我希望它开始训练(当然不会因为标签错误而学习任何东西),提前致谢!
McL*_*nce 24
因为nn.CrossEntropyLoss目标必须是区间 [0, #classes] 中的单个数字,而不是单热编码的目标向量。您的目标是 [1, 0],因此 PyTorch 认为您希望每个输入有多个标签,但不受支持。
替换您的单热编码目标:
[1, 0] --> 0
[0, 1] --> 1
| 归档时间: |
|
| 查看次数: |
22404 次 |
| 最近记录: |