我正在使用tensorflow 0.11并正在运行一些图像分割测试。在图像分割中,我们通常计算IoU。我怎样才能使用tensorflow的tf.contrib.metrics.streaming_mean_iou?
mIoU, confusionMatrix = tf.contrib.metrics.streaming_mean_iou(pred_labels_vec,gt_labels_vec,NUM_CLASS)
init = tf.initialize_local_variables()
sess.run(init)
for i in range(1000):
iou, _ = sess.run([mIoU, confusionMatrix])
print(iou)
答案 0 :(得分:1)
您的代码是正确的,以计算平均值。
如果您想为每个班级计算IoU,请参阅this question。您可以通过混淆矩阵计算它们。当您运行streaming_mean_iou
时,tensorflow已经创建了一个名为total_confusion_matrix的局部变量(对于tf 0.11也是如此)。然后,您可以通过调用tf.local_variables()
或get_tensor_by_name
来获取此矩阵。