mindspore.ops.MultilabelMarginLoss
- class mindspore.ops.MultilabelMarginLoss(reduction='mean')[source]
Creates a loss criterion that minimizes the hinge loss for multi-class classification tasks. It takes a 2D mini-batch Tensor
as input and a 2D Tensor containing target class indices as output.Refer to
mindspore.ops.multilabel_margin_loss()
for more details.- Parameters
reduction (str, optional) –
Apply specific reduction method to the output:
'none'
,'mean'
,'sum'
. Default:'mean'
.'none'
: no reduction will be applied.'mean'
: compute and return the mean of elements in the output.'sum'
: the output elements will be summed.
- Inputs:
x (Tensor) - Predict data. Tensor of shape
or , where is the batch size and is the number of classes. Data type must be float16 or float32.target (Tensor) - Ground truth data, with the same shape as input, data type must be int32 and label targets padded by -1.
- Outputs:
y (Union[Tensor, Scalar]) - The loss of MultilabelMarginLoss. If reduction is
"none"
, its shape is . Otherwise, a scalar value will be returned.is_target (Tensor) - Output tensor for backward input, with the same shape as target, data type must be int32.
- Supported Platforms:
Ascend
GPU
Examples
>>> import mindspore >>> import numpy as np >>> from mindspore import Tensor, ops >>> loss = ops.MultilabelMarginLoss() >>> x = Tensor(np.array([[0.1, 0.2, 0.4, 0.8], [0.2, 0.3, 0.5, 0.7]]), mindspore.float32) >>> target = Tensor(np.array([[1, 2, 0, 3], [2, 3, -1, 1]]), mindspore.int32) >>> output = loss(x, target) >>> print(output) (Tensor(shape=[], dtype=Float32, value= 0.325), Tensor(shape=[2, 4], dtype=Int32, value= [[1, 1, 1, 1], [0, 0, 1, 1]]))