megengine.functional.nn.binary_cross_entropy

binary_cross_entropy(pred, label, with_logits=True, reduction='mean')[源代码]

计算 binary cross entropy loss(默认使用 logits)。

默认情况下(with_logitis 为真),pred 被认为是 logits,类的概率将由 sigmoid 计算得出。

参数
  • pred (Tensor) – (N,*),其中 * 指任何附加的维度。

  • label (Tensor) – (N,*),与输入的形状相同。

  • with_logits (bool) – 布尔值,是否先应用 sigmoid。默认:True

  • reduction (str) – the reduction to apply to the output: ‘none’ | ‘mean’ | ‘sum’. Default: ‘mean’

返回类型

Tensor

返回

损失值。

实际案例

import numpy as np
from megengine import tensor
import megengine.functional as F

pred = tensor(np.array([0, 0], dtype=np.float32).reshape(1, 2))
label = tensor(np.ones((1, 2), dtype=np.float32))
loss = F.nn.binary_cross_entropy(pred, label)
print(loss.numpy().round(decimals=4))

输出:

0.6931