我正在尝试登录AUC during 训练时间我的模型。
根据文档, tf.metric.auc
需要一个label
and predictions
,两者形状相同。
但就我的二元分类而言,label
is a 一维的张量,仅包含类。和prediction
is 二维的包含每个数据点的每个类别的概率。
如何计算AUC在这种情况下?
我们看一下函数中的参数tf.metrics.auc:
-
labels
:形状与预测相符的张量。将被投射到bool
.
-
predictions
:任意形状的浮点Tensor,其值在范围内[0, 1]
.
该操作已经假设了二元分类。也就是说,中的每个元素labels
说明单个样本的类别是“正”还是“负”。它不是 1-hot 向量,后者需要一个具有与独占类数量一样多的元素的向量。
同样地,predictions
表示具有一定确定性的预测二元类(有些人可能称之为概率),并且每个元素也应该引用一个样本。它不是 softmax 向量。
如果概率来自具有 2 个神经元的全连接层和网络头部的 softmax 激活的神经网络,请考虑将其替换为单个神经元和 sigmoid 激活。现在可以将输出馈送到tf.metrics.auc
直接地。
否则,您可以只对预测张量进行切片以仅考虑正类,这将同样表示二元类:
auc_value, auc_op = tf.metrics.auc(labels, predictions[:, 1])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)