小编sto*_*ist的帖子

如何使用tensorflow tf.metrics.mean_iou?

我正在尝试使用tensorflow的内置mean_iou函数来计算IoU分数以进行语义分割。

我的代码是:

#y_mask.shape == [batch_size, h * w, n_classes]
#y_mask.shape == [batch_size, h * w, n_classes]
iou = tf.metrics.mean_iou(tf.argmax(y_mask,2), tf.argmax(mask_,2), n_classes)
Run Code Online (Sandbox Code Playgroud)

但是我得到以下错误跟踪:

tensorflow.python.framework.errors_impl.FailedPreconditionError: 

Attempting to use uninitialized value mean_iou/total_confusion
_matrix
         [[Node: mean_iou/AssignAdd = AssignAdd[T=DT_DOUBLE, _class=["loc:@mean_iou/total_confusion_matrix"], use_locking=false
, _device="/job:localhost/replica:0/task:0/cpu:0"](mean_iou/total_confusion_matrix, mean_iou/confusion_matrix/SparseTensorDense
Add)]]

Caused by op u'mean_iou/AssignAdd', defined at:
  File "sample_tf_ynet.py", line 207, in <module>
    trainSeg()
  File "sample_tf_ynet.py", line 166, in trainSeg
    iou, cm_op = tf.metrics.mean_iou(tf.argmax(y_mask,2), tf.argmax(mask_,2), n_classes)
  File "/home/meetshah1995/anaconda2/lib/python2.7/site-packages/tensorflow/python/ops/metrics_impl.py", line 782, in mean_iou
    update_op = state_ops.assign_add(total_cm, current_cm)
  File "/home/meetshah1995/anaconda2/lib/python2.7/site-packages/tensorflow/python/ops/gen_state_ops.py", line 75, in …
Run Code Online (Sandbox Code Playgroud)

deep-learning conv-neural-network tensorflow

3
推荐指数
2
解决办法
7597
查看次数