mindspore.train.Precision
- class mindspore.train.Precision(eval_type='classification')[source]
Calculates precision for classification and multilabel data.
The precision function creates two local variables,
and , which are used to compute the precision. The calculation formula is:- Parameters
eval_type (str) –
'classification'
or'multilabel'
are supported. See the update method below for what it does. Default:'classification'
.
- Supported Platforms:
Ascend
GPU
CPU
Examples
>>> import numpy as np >>> from mindspore import Tensor >>> from mindspore.train import Precision >>> >>> x = Tensor(np.array([[0.2, 0.5], [0.3, 0.1], [0.9, 0.6]])) >>> y = Tensor(np.array([1, 0, 1])) >>> metric = Precision('classification') >>> metric.clear() >>> metric.update(x, y) >>> precision = metric.eval() >>> print(precision) [0.5 1. ]
- eval(average=False)[source]
Computes the precision.
- Parameters
average (bool) – Specify whether calculate the average precision. Default:
False
.- Returns
numpy.float64, the computed result.
- update(*inputs)[source]
Updates the internal evaluation result with y_pred and y. In the multi-label cases, the elements of
and must be 0 or 1.- Parameters
inputs – Input y_pred and y. y_pred and y are Tensor, list or numpy.ndarray. For 'classification' evaluation type, y_pred is in most cases (not strictly) a list of floating numbers in range
and the shape is , where is the number of cases and is the number of categories. Shape of y can be with values 0 and 1 if one-hot encoding is used or the shape is with integer values if index of category is used. For 'multilabel' evaluation type, y_pred and y can only be one-hot encoding with values 0 or 1. Indices with 1 indicate positive category. The shape of y_pred and y are both .- Raises
ValueError – If the number of inputs is not 2.