pytorch学习笔记——二分类交叉熵损失函数

pytorch学习笔记——二分类交叉熵损失函数

  • 二分类交叉熵函数

二分类交叉熵函数

  • binary_cross_entropy

    公式:
    l o s s = − y ∗ log ⁡ ( y ^ ) − ( 1 − y ) ∗ l o g ( 1 − y ^ ) loss=-y\ast \log \left( \widehat {y}\right) -\left( 1-y\right) \ast log\left( 1-\widehat {y}\right) loss=ylog(y )(1y)log(1y )

接下来使用代码自己编辑计算公式和调用pytorch自带的函数分别计算
首先定义标签值和预测值,预测值已经过sigmoid函数激活

y_true = np.array([0., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
y_pred = np.array([0.2, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8])

自编码计算

my_loss = - y_true * np.log(y_pred) - (1 - y_true) * np.log(1 - y_pred)
mean_my_loss = np.mean(my_loss)
print('my_loss:', mean_bce_loss)

输出:my_loss: 0.2231435513142097

调用pytorch自带的函数计算

torch_pred = torch.tensor(y_pred)
torch_true = torch.tensor(y_true)
bce_loss = F.binary_cross_entropy(torch_pred, torch_true)
print('bce_loss:', bce_loss)

输出:bce_loss: 0.2231

结论:两个输出基本一致

你可能感兴趣的:(pytorch学习笔记——二分类交叉熵损失函数)