在我的模型的训练时间期间,我正在尝试记录AUC。
根据文档的说法,tf.metric.auc
需要一个label
和predictions
,两者的形状是相同的。
但在我的二进制分类中,label
是一个只包含类的label
张量。two-dimensional是prediction
,包含每个数据点的每个类的概率。
在这种情况下如何计算?
发布于 2018-01-09 19:05:47
让我们看看函数tf.metrics.auc
中的参数
labels
:形状与预测相匹配的张量。将被投给bool
。predictions
:任意形状的浮点张量,其值在[0, 1]
范围内。此操作已假定为二进制分类。也就是说,labels
中的每个元素都声明单个样本的类是“正”还是“负”。它不是一个1热向量,它需要一个元素和排他类的数量一样多的向量。
同样,predictions
用一定程度的确定性表示预测的二进制类(有些人可能称之为概率),每个元素也应该引用一个示例。它不是softmax向量。
如果概率来自于一个由2个神经元组成的完全连接的神经网络,并在网络的顶端激活一个softmax,那么可以考虑用一个神经元和一个乙状结肠激活来代替它。现在可以直接将输出输入到tf.metrics.auc
。
否则,您只需将预测张量分割为只考虑正类,它将同样表示二进制类:
auc_value, auc_op = tf.metrics.auc(labels, predictions[:, 1])
https://stackoverflow.com/questions/48174323
复制相似问题