Calculate per-step mean Intersection-Over-Union (mIOU).

tf.metrics.mean_iou( labels, predictions, num_classes, weights=None, metrics_collections=None, updates_collections=None, name=None )

Mean Intersection-Over-Union is a common evaluation metric for semantic image segmentation, which first computes the IOU for each semantic class and then computes the average over classes. IOU is defined as follows: IOU = true_positive / (true_positive + false_positive + false_negative). The predictions are accumulated in a confusion matrix, weighted by `weights`

, and mIOU is then calculated from it.

For estimation of the metric over a stream of data, the function creates an `update_op`

operation that updates these variables and returns the `mean_iou`

.

If `weights`

is `None`

, weights default to 1. Use weights of 0 to mask values.

Args | |
---|---|

`labels` | A `Tensor` of ground truth labels with shape [batch size] and of type `int32` or `int64` . The tensor will be flattened if its rank > 1. |

`predictions` | A `Tensor` of prediction results for semantic labels, whose shape is [batch size] and type `int32` or `int64` . The tensor will be flattened if its rank > 1. |

`num_classes` | The possible number of labels the prediction task can have. This value must be provided, since a confusion matrix of dimension = [num_classes, num_classes] will be allocated. |

`weights` | Optional `Tensor` whose rank is either 0, or the same rank as `labels` , and must be broadcastable to `labels` (i.e., all dimensions must be either `1` , or the same as the corresponding `labels` dimension). |

`metrics_collections` | An optional list of collections that `mean_iou` should be added to. |

`updates_collections` | An optional list of collections `update_op` should be added to. |

`name` | An optional variable_scope name. |

Returns | |
---|---|

`mean_iou` | A `Tensor` representing the mean intersection-over-union. |

`update_op` | An operation that increments the confusion matrix. |

Raises | |
---|---|

`ValueError` | If `predictions` and `labels` have mismatched shapes, or if `weights` is not `None` and its shape doesn't match `predictions` , or if either `metrics_collections` or `updates_collections` are not a list or tuple. |

`RuntimeError` | If eager execution is enabled. |

© 2020 The TensorFlow Authors. All rights reserved.

Licensed under the Creative Commons Attribution License 3.0.

Code samples licensed under the Apache 2.0 License.

https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/metrics/mean_iou