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.]]
- 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.