mindspore.nn.ConfusionMatrix

class mindspore.nn.ConfusionMatrix(num_classes, normalize=NO_NORM, threshold=0.5)[source]

Computes the confusion matrix, which is commonly used to evaluate the performance of classification models, including binary classification and multiple classification. It returns an array of shape [BC4], where B is the batch size and C is the number of classes to be calculated, the third dimension represents each channel of each sample in the input batch, .

If you only need confusion matrix, use this class. If you want to calculate other metrics, such as ‘PPV’, ‘TPR’, ‘TNR’, etc., use class ‘mindspore.metrics.ConfusionMatrixMetric’.

Parameters
  • num_classes (int) – Number of classes in the dataset.

  • normalize (str) –

    Normalization mode for confusion matrix. Choose from:

    • ’no_norm’ (None) - No Normalization is used. Default: None.

    • ’target’ (str) - Normalization based on target value.

    • ’prediction’ (str) - Normalization based on predicted value.

    • ’all’ (str) - Normalization over the whole matrix.

  • threshold (float) – The threshold used to compare with the input tensor. Default: 0.5.

Supported Platforms:

Ascend GPU CPU

Examples

>>> import numpy as np
>>> from mindspore import nn, Tensor
>>>
>>> x = Tensor(np.array([1, 0, 1, 0]))
>>> y = Tensor(np.array([1, 0, 0, 1]))
>>> metric = nn.ConfusionMatrix(num_classes=2, normalize='no_norm', threshold=0.5)
>>> metric.clear()
>>> metric.update(x, y)
>>> output = metric.eval()
>>> print(output)
[[1. 1.]
 [1. 1.]]
clear()[source]

Clears the internal evaluation result.

eval()[source]

Computes confusion matrix.

Returns

numpy.ndarray, the computed result.

update(*inputs)[source]

Update state with y_pred and y.

Parameters

inputs – Input y_pred and y. y_pred and y are a Tensor, list or numpy.ndarray. y_pred is the predicted value, y is the true value. The shape of y_pred is \((N, C, ...)\) or \((N, ...)\). The shape of y is \((N, ...)\).

Raises
  • ValueError – If the number of inputs is not 2.

  • ValueError – If the lengths of candidate_corpus and reference_corpus are not equal.