Shortcuts

Source code for catalyst.tools.meters.mapmeter

"""
The mAP meter measures the mean average precision over all classes.
"""
from typing import Optional

import torch

from catalyst.tools.meters import APMeter, meter


[docs]class mAPMeter(meter.Meter): # noqa: N801 """ This meter is a wrapper for :py:class:`catalyst.tools.meters.apmeter.APMeter`. The mAPMeter is designed to operate on `NxK` Tensors `output` and `target`, and optionally a `Nx1` Tensor weight where: 1. The `output` contains model output scores for `N` examples and `K` classes that ought to be higher when the model is more convinced that the example should be positively labeled, and smaller when the model believes the example should be negatively labeled (for instance, the output of a sigmoid function) 2. The `target` contains only values 0 (for negative examples) and 1 (for positive examples) 3. The `weight` ( > 0) represents weight for each sample. """
[docs] def __init__(self): """Constructor method for the ``mAPMeter`` class.""" super(mAPMeter, self).__init__() self.apmeter = APMeter()
[docs] def reset(self) -> None: """Reset `self.apmeter`.""" self.apmeter.reset()
[docs] def add( self, output: torch.Tensor, target: torch.Tensor, weight: Optional[torch.Tensor] = None, ) -> None: """Update `self.apmeter`. Args: output: Model output scores as `NxK` tensor target: Target scores as `NxK` tensor weight (Tensor, optional): Weight values for each sample as `Nx1` Tensor """ self.apmeter.add(output, target, weight)
[docs] def value(self): """Returns mean of `self.apmeter` value. Returns: torch.Tensor: mAP scalar tensor """ return self.apmeter.value().mean()
__all__ = ["mAPMeter"]