记录一些pytorch使用注意事项
BCE Loss
Binary Cross Entropy Loss
,可用于多分类多标签任务。网络输出经过Sigmoid
激活函数,得到预测值h
($mathbf{h}inmathbb{R}^d$),真实标签为y
($mathbf{y}inlbrace 0, 1rbrace^d$),那么BCELoss
表示为:
$$
L_i=-left(y_ilog(h_i)+(1-y_i)log(1-h_i)right)
$$
pytorch中用torch.nn.BCELoss
或torch.nn.BCEWithLogitsLoss
函数计算。
1 |
torch.nn.BCELoss(weight=None, size_average=None, reduce=None, reduction='elementwise_mean') |
Example
1 |
import torch |
torch.nn.BCEWithLogitsLoss
将Sigmoid
层与BCELoss
层合并起来,类似于CrossEntropyLoss
与NLLLoss
的差异。
1 |
torch.nn.BCEWithLogitsLoss(weight=None, size_average=None, reduce=None, reduction='elementwise_mean', pos_weight=None) |
其中pos_weight
给定正例的权重$p_i$,如下
$$
L_i=-left(p_icdot y_ilog(h_i)+(1-y_i)log(1-h_i)right)
$$
近期评论