在使用nn.CrossEntropyLoss损失函数时,它要求传入的target必须是1D,像这样:[1,2,3,4,5],这样[[1],[2],[3]]是不行的!!
解决方法:
loss = self.loss_func(pred, y.squeeze(1).long())
同时,使用CrossEntropyLoss时,要求第一个参数为网络输出值,FloatTensor类型,第二个参数为目标值,LongTensor类型。
本文介绍了PyTorch中nn.CrossEntropyLoss损失函数的正确使用方式。该函数要求目标值为一维张量,并且需要使用squeeze操作来确保形状正确。此外,输入应该是网络的预测值(FloatTensor类型),而目标值则应为整数类型(LongTensor)。文章通过实例展示了正确的调用方法。
在使用nn.CrossEntropyLoss损失函数时,它要求传入的target必须是1D,像这样:[1,2,3,4,5],这样[[1],[2],[3]]是不行的!!
解决方法:
loss = self.loss_func(pred, y.squeeze(1).long())
同时,使用CrossEntropyLoss时,要求第一个参数为网络输出值,FloatTensor类型,第二个参数为目标值,LongTensor类型。
您可能感兴趣的与本文相关的镜像
PyTorch 2.5
PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理
1万+
2万+
9616
1万+
3576

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