mindspore.ops.SigmoidCrossEntropyWithLogits

class mindspore.ops.SigmoidCrossEntropyWithLogits[源代码]

计算预测值与真实值之间的sigmoid交叉熵。

测量离散分类任务中的分布误差,每个类相互独立,且计算出各个类的交叉熵损失。

将输入 logits 设置为 X ,输入 labelY ,输出为 loss 。然后,

pij=sigmoid(Xij)=11+eXijlossij=[Yijln(pij)+(1Yij)ln(1pij)]
输入:
  • logits (Tensor) - 预测值,任意维度的Tensor。

  • label (Tensor) - 真实值。shape和数据类型与 logits 的相同。

输出:

Tensor,shape和数据类型与输入 logits 相同。

异常:
  • TypeError - logitslabel 不是Tensor。

支持平台:

Ascend GPU CPU

样例:

>>> logits = Tensor(np.array([[-0.8, 1.2, 0.7], [-0.1, -0.4, 0.7]]).astype(np.float32))
>>> labels = Tensor(np.array([[0.3, 0.8, 1.2], [-0.6, 0.1, 2.2]]).astype(np.float32))
>>> sigmoid = ops.SigmoidCrossEntropyWithLogits()
>>> output = sigmoid(logits, labels)
>>> print(output)
[[ 0.6111007   0.5032824   0.26318604]
 [ 0.58439666  0.5530153  -0.4368139 ]]