You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

mindspore.nn.Precision.rst 2.4 kB

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