PyTorch调用CrossEntropyLoss报错target参数类型不符问题求助
问题排查与解决
问题原因
- sklearn加载的鸢尾花数据集
target字段本身是numpy.ndarray类型,你已经在数据预处理阶段将其转换为PyTorch张量并存入了target_tensor变量,但训练循环计算交叉熵损失时,误传入了未转换的原始target变量,不符合nn.CrossEntropyLoss要求输入参数均为张量的规则,触发类型错误。
解决方法
修改训练循环中计算交叉熵损失的代码行,将第二个参数替换为转换后的张量变量target_tensor:
修改前代码:
cross_entropy = cross_entropy_loss(models, target)
修改后代码:
cross_entropy = cross_entropy_loss(models, target_tensor)
内容的提问来源于stack exchange,提问作者Yumeng Xu
相关产品推荐
相关产品推荐

