SpectralAngleMapper#
- class deepinv.loss.metric.SpectralAngleMapper(metric: Callable | None = None, complex_abs: bool = False, train_loss: bool = False, reduction: str | None = None, norm_inputs: str | None = None)[source]#
Bases:
Metric
Spectral Angle Mapper (SAM).
Calculates spectral similarity between estimated and target multispectral images.
Wraps the
torchmetrics
Spectral Angle Mapper function. Note that ourreduction
parameter follows our uniform convention (see below).Note
By default, no reduction is performed in the batch dimension.
- Example:
>>> import torch >>> from deepinv.loss.metric import SpectralAngleMapper >>> m = SpectralAngleMapper() >>> x_net = x = torch.ones(3, 2, 8, 8) # B,C,H,W >>> m(x_net, x) tensor([0., 0., 0.])
- Parameters:
train_loss (bool) – use metric as a training loss, by returning one minus the metric.
reduction (str) – a method to reduce metric score over individual batch scores.
mean
: takes the mean,sum
takes the sum,none
or None no reduction will be applied (default).norm_inputs (str) – normalize images before passing to metric.
l2``normalizes by L2 spatial norm, ``min_max
normalizes by min and max of each input.
- metric(x_net, x, *args, **kwargs)[source]#
Calculate metric on data.
Override this function to implement your own metric. Always include
args
andkwargs
arguments.- Parameters:
x_net (torch.Tensor) – Reconstructed image \(\hat{x}=\inverse{y}\) of shape
(B, ...)
or(B, C, ...)
.x (torch.Tensor) – Reference image \(x\) (optional) of shape
(B, ...)
or(B, C, ...)
.
- Return torch.Tensor:
calculated metric, the tensor size might be
(1,)
or(B,)
.
Examples using SpectralAngleMapper
:#
Remote sensing with satellite images