tf.metrics.mean_iou返回负值?

时间:2017-06-24 14:34:58

标签: tensorflow

是否有可能在张量流中得到负值?我得到负值。

mIOU, conf_mat = tf.metrics.mean_iou(labels=gt_label, predictions=predict_labels, 
            num_classes=21, weights=tf.stack([0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]))

我正在屏蔽标签0,因为它是背景标签而未评估。但它是在损失函数中计算的。

2 个答案:

答案 0 :(得分:0)

从形容词的描述来看,不可能得出负值:

  

IOU = true_positive /(true_positive + false_positive +   false_negative)。预测是在混乱中累积的   矩阵,按权重加权,然后根据它计算mIOU。

很难说你为什么没有数据就得到它,因为看起来你正确使用它。

答案 1 :(得分:0)

给定的权重分别对应于预测/ gt向量中的一个值对。权重不适用于类索引。

要从miou计算中排除类,您可以按以下方式创建权重:

weights = tf.cast(tf.not_equal(gt_label, 0), tf.int32)

此代码段将标签0标记为0,将所有其他标签标记为1。