Class mindspore.nn.Precision(eval_type='classification') 计算'classification'单标签数据分类和'multilabel'多标签数据分类的精度。 此函数创建两个局部变量:math:`\text{true_positive}`和:math:`\text{false_positive}` 用于计算精度。计算方式为:math:`\text{true_positive}`除以:math:`\text{true_positive}`与:math:`\text{false_positive}`的和,是一个幂等操作,此值最终作为精度返回。 .. math:: \text{precision} = \frac{\text{true_positive}}{\text{true_positive} + \text{false_positive}} 注: 在多标签情况下,:math:`y`和:math:`y_{pred}`的元素必须为0或1。 参数: eval_type (str):支持'classification'和'multilabel'。默认值:'classification'。 示例: >>> import numpy as np >>> from mindspore import nn, Tensor >>> >>> x = Tensor(np.array([[0.2, 0.5], [0.3, 0.1], [0.9, 0.6]])) >>> y = Tensor(np.array([1, 0, 1])) >>> metric = nn.Precision('classification') >>> metric.clear() >>> metric.update(x, y) >>> precision = metric.eval() >>> print(precision) [0.5 1. ] clear() 内部评估结果清零。 eval(average=False) 计算精度。 参数: average (bool):指定是否计算平均精度。默认值:False。 返回: numpy.float64,计算结果。 update(*inputs) 使用预测值`y_pred`和真实标签`y`更新局部变量。 参数: inputs:输入`y_pred`和`y`。`y_pred` 和 `y` 支持Tensor、list或numpy.ndarray类型。 对于'classification'情况,`y_pred`在大多数情况下由范围:math:`[0, 1]`中的浮点数组成,shape为:math:`(N, C)`,其中:math:`N`是样本数,:math:`C`是类别数。 `y` 由整数值组成,如果是one_hot编码格式,shape是:math:`(N,C)`;如果是类别索引,shape是:math:`(N,)`。 对于'multilabel'情况,`y_pred`和`y`只能是值为0或1的one-hot编码格式,其中值为1的索引表示正类别。`y_pred`和`y`的shape都是:math:`(N,C)`。 异常: ValueError:inputs数量不是2。