张量流的mean_iou无法正常工作

时间:2018-05-19 14:32:02

标签: tensorflow

import tensorflow as tf
import numpy as np

lab = tf.placeholder(shape=[None, None], dtype=tf.int32)
pred= tf.placeholder(shape=[None, None], dtype=tf.int32)

iou, conf_mat = tf.metrics.mean_iou(lab, pred, num_classes=2)
sess = tf.Session()
sess.run(tf.local_variables_initializer())

with tf.control_dependencies([conf_mat]):
    iou = tf.identity(iou)

_iou=sess.run(iou, {lab:[[1,1,1], [1,1,1]], pred:[[1,1,1],[1,1,1]]})
print(_iou)
print(sess.run('mean_iou/total_confusion_matrix:0'))

以上是我运行mean_iou的代码。该代码的结果是:

0.0
[[0. 0.]
[0. 6.]]

尽管混淆矩阵给出了正确的结果,但我对iou的预期得分是1.0。 当我重新运行tf.control_dependencies下面的代码时,我将混淆矩阵更新为[[0,0],[0,12]]并且iou得分为1.0。

但是当我尝试首先运行混淆矩阵的更新操作,然后分别运行iou分数时,我得到了预期的结果。

这是否意味着tensorflow会出现一些错误?

0 个答案:

没有答案