将权重传递给交叉熵损失

时间:2020-05-15 14:21:58

标签: pytorch

我试图为不同的类别分配不同的权重,所以我修改了损失标准,如下:

我必须将权重张量转换为两倍的torch.DoubleTensor(weight),因为我的model已移至double()。我做对了吗?

weights = [0.4,0.8,1.0]

class_weights = torch.DoubleTensor(weights).cuda()

criterion = nn.CrossEntropyLoss(weight=class_weights)

1 个答案:

答案 0 :(得分:0)

根据documentationweight的{​​{1}}参数应为:

砝码(张量,可选)–赋予每个班级的手动缩放砝码。如果给出,则必须为C的张量。

我假设您有3个班级CrossEntropyLoss。顺便说一句,您确定您的模型已移至(C=3)吗?否则,您应该更喜欢使用double()。例如,

FloatTensor

否则,您的示例看起来还可以!

相关问题