Source code for catalyst.callbacks.metrics.iou

from typing import List

from catalyst.callbacks.metric import BatchMetricCallback
from catalyst.metrics.functional import (
from catalyst.metrics.iou import iou

[docs]class IouCallback(BatchMetricCallback): """IoU (Jaccard) metric callback."""
[docs] def __init__( self, input_key: str = "targets", output_key: str = "logits", prefix: str = "iou", activation: str = "Sigmoid", per_class: bool = False, class_args: List[str] = None, **kwargs, ): """ Args: input_key: input key to use for iou calculation specifies our ``y_true`` output_key: output key to use for iou calculation; specifies our ``y_pred`` prefix: key to store in logs eps: epsilon to avoid zero division threshold: threshold for outputs binarization activation: An torch.nn activation applied to the outputs. Must be one of ``'none'``, ``'Sigmoid'``, ``'Softmax'`` per_class: boolean flag to log per class metrics, or use mean/macro statistics otherwise class_args: class names to display in the logs. If None, defaults to indices for each class, starting from 0 **kwargs: key-value params to pass to the metric .. note:: For ``**kwargs`` info, please follow ``catalyst.callbacks.metric.BatchMetricCallback`` and ``catalyst.metrics.iou.iou`` docs """ metric_fn = wrap_metric_fn_with_activation( metric_fn=iou, activation=activation ) metric_fn = wrap_class_metric2dict( metric_fn, per_class=per_class, class_args=class_args ) super().__init__( prefix=prefix, metric_fn=metric_fn, input_key=input_key, output_key=output_key, **kwargs, )
JaccardCallback = IouCallback __all__ = [ "IouCallback", "JaccardCallback", ]