mindspore.train.TopKCategoricalAccuracy

class mindspore.train.TopKCategoricalAccuracy(k)[源代码]

计算top-k分类正确率。

参数:
  • k (int) - 计算准确率使用的Top类别数。

异常:
  • TypeError - k 不是int。

  • ValueError - k 小于1。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor
>>> from mindspore.train import TopKCategoricalAccuracy
>>>
>>> x = Tensor(np.array([[0.2, 0.5, 0.3, 0.6, 0.2], [0.1, 0.35, 0.5, 0.2, 0.],
...         [0.9, 0.6, 0.2, 0.01, 0.3]]), mindspore.float32)
>>> y = Tensor(np.array([2, 0, 1]), mindspore.float32)
>>> topk = TopKCategoricalAccuracy(3)
>>> topk.clear()
>>> topk.update(x, y)
>>> output = topk.eval()
>>> print(output)
0.6666666666666666
clear()[源代码]

内部评估结果清零。

eval()[源代码]

计算top-k分类正确率。

返回:

numpy.float64,计算结果。

update(*inputs)[源代码]

使用预测值 y_pred 和真实标签 y 更新局部变量。

参数:
  • inputs - 输入 y_predyy_predy 支持Tensor、list或numpy.ndarray类型。 y_pred 在大多数情况下由范围 \([0, 1]\) 中的浮点数组成,shape为 \((N, C)\) ,其中 \(N\) 是样本数, \(C\) 是类别数。 y 由整数值组成。如果使用one-hot编码,则shape为 \((N, C)\) ;如果使用类别索引,shape是 \((N,)\)

说明

update 方法需要接收满足 \((y\_pred, y)\) 格式的输入。如果某些样本具有相同的正确率,则将选择第一个样本。