Source code for otx.api.usecases.tasks.interfaces.evaluate_interface
"""This module contains the interface class for tasks that can compute performance."""
# Copyright (C) 2021-2022 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
#
import abc
from typing import Optional
from otx.api.entities.resultset import ResultSetEntity
[docs]
class IEvaluationTask(metaclass=abc.ABCMeta):
"""A base interface class for tasks which can compute performance on a resultset."""
[docs]
@abc.abstractmethod
def evaluate(self, output_resultset: ResultSetEntity, evaluation_metric: Optional[str] = None):
"""Compute performance metrics for a given set of results.
The task may use at its discretion the most appropriate metrics for the evaluation (for instance,
average precision for classification, DICE for segmentation, etc).
The performance will be stored directly to output_resultset.performance
Args:
output_resultset (ResultSetEntity): The set of results which must be
evaluated.
evaluation_metric (Optional[str]): the evaluation metric used to compute the
performance
"""
raise NotImplementedError