mindspore.nn.ConfusionMatrixMetric
- class mindspore.nn.ConfusionMatrixMetric(skip_channel=True, metric_name='sensitivity', calculation_method=False, decrease='mean')[源代码]
计算与混淆矩阵相关的度量。
该计算基于全尺度张量,并收集批处理平均值,类通道数和迭代数。 此函数支持计算参数metric_name中描述中列出的所有度量名称。
如果要使用混淆矩阵计算,如”PPV”、”TPR”、”TNR”,请使用此类。 如果只想计算混淆矩阵,请使用’mindspore.nn.ConfusionMatrix’。
参数:
skip_channel (bool) - 是否跳过预测输出的第一个通道的度量计算。默认值:True。
metric_name (str) - 建议采用如下指标。当然,也可以为这些指标设置通用别名。 取值范围:[“sensitivity”, “specificity”, “precision”, “negative predictive value”, “miss rate”, “fall out”, “false discovery rate”, “false omission rate”, “prevalence threshold”, “threat score”, “accuracy”, “balanced accuracy”, “f1 score”, “matthews correlation coefficient”, “fowlkes mallows index”, “informedness”, “markedness”]。 默认值:”sensitivity”。
calculation_method (bool) - 如果为True,则计算每个样本的度量值。如果为False,则累积所有样本的混淆矩阵。 对于分类任务, calculation_method 应为False。默认值:False。
decrease (str) - 定义减少一批数据计算结果的模式。仅当 calculation_method 为True时,才生效。 取值范围:[“none”, “mean”, “sum”, “mean_batch”, “sum_batch”, “mean_channel”, “sum_channel”]。默认值:”mean”。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import numpy as np >>> from mindspore import nn, Tensor >>> >>> metric = nn.ConfusionMatrixMetric(skip_channel=True, metric_name="tpr", ... calculation_method=False, decrease="mean") >>> metric.clear() >>> x = Tensor(np.array([[[0], [1]], [[1], [0]]])) >>> y = Tensor(np.array([[[0], [1]], [[0], [1]]])) >>> metric.update(x, y) >>> avg_output = metric.eval() >>> print(avg_output) [0.5]
- update(*inputs)[源代码]
使用预测值和目标值更新状态。
参数:
inputs (tuple) - y_pred 和 y 。 y_pred 和 y 是 Tensor 、列表或数组。
y_pred (ndarray):待计算的输入数据。格式必须为one-hot,且第一个维度是batch。 y_pred 的shape是 \((N, C, ...)\) 或 \((N, ...)\) 。 至于分类任务, y_pred 的shape应为[BN],其中N大于1。对于分割任务,shape应为[BNHW]或[BNHWD]。
y (ndarray):计算度量值的真实值。格式必须为one-hot,且第一个维度是batch。y 的shape是 \((N, C, ...)\) 。
异常:
ValueError - 输入参数的数量不等于2。