在 pytorch 中,如何使用 F.cross_entropy() 中的权重参数?



我正在尝试编写如下代码:

x = Variable(torch.Tensor([[1.0,2.0,3.0]]))
y = Variable(torch.LongTensor([1]))
w = torch.Tensor([1.0,1.0,1.0])
F.cross_entropy(x,y,w)
w = torch.Tensor([1.0,10.0,1.0])
F.cross_entropy(x,y,w)

但是,无论w是什么,交叉熵损失的输出始终为1.4076。F.cross_entropy(( 的权重参数背后是什么?如何正确使用它?
我正在使用 pytorch 0.3

weight参数用于根据目标类计算所有输入的加权结果。如果只有一个输入或同一目标类的所有输入,则weight不会影响损失。

但是,查看不同目标类的 2 个输入的区别:

import torch
import torch.nn.functional as F
from torch.autograd import Variable
x = Variable(torch.Tensor([[1.0,2.0,3.0], [1.0,2.0,3.0]]))
y = Variable(torch.LongTensor([1, 2]))
w = torch.Tensor([1.0,1.0,1.0])
res = F.cross_entropy(x,y,w)
# 0.9076
w = torch.Tensor([1.0,10.0,1.0])
res = F.cross_entropy(x,y,w)
# 1.3167

相关内容

  • 没有找到相关文章

最新更新