Computes the Intersection-Over-Union metric for specific target classes.
Source:R/metrics.R
metric_iou.RdFormula:
iou <- true_positives / (true_positives + false_positives + false_negatives)Intersection-Over-Union is a common evaluation metric for semantic image segmentation.
To compute IoUs, the predictions are accumulated in a confusion matrix,
weighted by sample_weight and the metric is then calculated from it.
If sample_weight is NULL, weights default to 1.
Use sample_weight of 0 to mask values.
Note, this class first computes IoUs for all individual classes, then
returns the mean of IoUs for the classes that are specified by
target_class_ids. If target_class_ids has only one id value, the IoU of
that specific class is returned.
Usage
metric_iou(
...,
num_classes,
target_class_ids,
name = NULL,
dtype = NULL,
ignore_class = NULL,
sparse_y_true = TRUE,
sparse_y_pred = TRUE,
axis = -1L
)Arguments
- ...
For forward/backward compatability.
- num_classes
The possible number of labels the prediction task can have.
- target_class_ids
A list of target class ids for which the metric is returned. To compute IoU for a specific class, a list of a single id value should be provided.
- name
(Optional) string name of the metric instance.
- dtype
(Optional) data type of the metric result.
- ignore_class
Optional integer. The ID of a class to be ignored during metric computation. This is useful, for example, in segmentation problems featuring a "void" class (commonly -1 or 255) in segmentation maps. By default (
ignore_class=NULL), all classes are considered.- sparse_y_true
Whether labels are encoded using integers or dense floating point vectors. If
FALSE, theargmaxfunction is used to determine each sample's most likely associated label.- sparse_y_pred
Whether predictions are encoded using integers or dense floating point vectors. If
FALSE, theargmaxfunction is used to determine each sample's most likely associated label.- axis
(Optional) -1 is the dimension containing the logits. Defaults to
-1.
Value
a Metric instance is returned. The Metric instance can be passed
directly to compile(metrics = ), or used as a standalone object. See
?Metric for example usage.
Examples
Standalone usage:
m <- metric_iou(num_classes = 2L, target_class_ids = list(0L))
m$update_state(c(0, 0, 1, 1), c(0, 1, 0, 1))m$result()m$reset_state()
m$update_state(c(0, 0, 1, 1), c(0, 1, 0, 1),
sample_weight = 10 * c(0.3, 0.3, 0.3, 0.1))m$result()Usage with compile() API:
model %>% compile(
optimizer = 'sgd',
loss = 'mse',
metrics = list(metric_iou(num_classes = 2L, target_class_ids = list(0L))))See also
Other iou metrics: metric_binary_iou() metric_mean_iou() metric_one_hot_iou() metric_one_hot_mean_iou()
Other metrics: Metric() custom_metric() metric_auc() metric_binary_accuracy() metric_binary_crossentropy() metric_binary_focal_crossentropy() metric_binary_iou() metric_categorical_accuracy() metric_categorical_crossentropy() metric_categorical_focal_crossentropy() metric_categorical_hinge() metric_concordance_correlation() metric_cosine_similarity() metric_f1_score() metric_false_negatives() metric_false_positives() metric_fbeta_score() metric_hinge() metric_huber() metric_kl_divergence() metric_log_cosh() metric_log_cosh_error() metric_mean() metric_mean_absolute_error() metric_mean_absolute_percentage_error() metric_mean_iou() metric_mean_squared_error() metric_mean_squared_logarithmic_error() metric_mean_wrapper() metric_one_hot_iou() metric_one_hot_mean_iou() metric_pearson_correlation() metric_poisson() metric_precision() metric_precision_at_recall() metric_r2_score() metric_recall() metric_recall_at_precision() metric_root_mean_squared_error() metric_sensitivity_at_specificity() metric_sparse_categorical_accuracy() metric_sparse_categorical_crossentropy() metric_sparse_top_k_categorical_accuracy() metric_specificity_at_sensitivity() metric_squared_hinge() metric_sum() metric_top_k_categorical_accuracy() metric_true_negatives() metric_true_positives()