pytorch 备忘录
nn.CrossEntropyLoss():
H
(
p
,
q
)
=
−
∑
x
(
p
(
x
)
l
o
g
q
(
x
)
)
H(p,q)=-\sum_x(p(x)logq(x))
H(p,q)=−x∑(p(x)logq(x))
p(x):真实值,q(x)预测值
效果是将softmax-log-NLLLoss结合
- softmax:归一化
- log:对softmax结果取log
- NLLloss:
predict = torch.Tensor([[2, 3, 1]])
label = torch.tensor([1])
nllloss(predict, label)
output: tensor(-3.)
nllloss对两个向量的操作为,将predict中的向量,在label中对应的index取出,并取负号输出。label中为1,则取2,3,1中的第1位3,取负号后输出。
- crossentropyloss vs BCEloss: BCEloss 前需要加sigmoid层进行归一