Shortcuts

Total Variation (TV)

Module Interface

class torchmetrics.image.TotalVariation(reduction='sum', **kwargs)[source]

Compute Total Variation loss (TV).

As input to forward and update the metric accepts the following input

  • img (Tensor): A tensor of shape (N, C, H, W) consisting of images

As output of forward and compute the metric returns the following output

  • sdi (Tensor): if reduction!='none' returns float scalar tensor with average TV value over sample else returns tensor of shape (N,) with TV values per sample

Parameters:
  • reduction (Optional[Literal['mean', 'sum', 'none']]) –

    a method to reduce metric score over samples

    • 'mean': takes the mean over samples

    • 'sum': takes the sum over samples

    • None or 'none': return the score per sample

  • kwargs (Any) – Additional keyword arguments, see Advanced metric settings for more info.

Raises:

ValueError – If reduction is not one of 'sum', 'mean', 'none' or None

Example

>>> import torch
>>> from torchmetrics.image import TotalVariation
>>> _ = torch.manual_seed(42)
>>> tv = TotalVariation()
>>> img = torch.rand(5, 3, 28, 28)
>>> tv(img)
tensor(7546.8018)
plot(val=None, ax=None)[source]

Plot a single or multiple values from the metric.

Parameters:
  • val (Union[Tensor, Sequence[Tensor], None]) – Either a single result from calling metric.forward or metric.compute or a list of these results. If no value is provided, will automatically call metric.compute and plot that result.

  • ax (Optional[Axes]) – An matplotlib axis object. If provided will add plot to that axis

Return type:

Tuple[Figure, Union[Axes, ndarray]]

Returns:

Figure and Axes object

Raises:

ModuleNotFoundError – If matplotlib is not installed

>>> # Example plotting a single value
>>> import torch
>>> from torchmetrics.image import TotalVariation
>>> metric = TotalVariation()
>>> metric.update(torch.rand(5, 3, 28, 28))
>>> fig_, ax_ = metric.plot()
../_images/total_variation-1.png
>>> # Example plotting multiple values
>>> import torch
>>> from torchmetrics.image import TotalVariation
>>> metric = TotalVariation()
>>> values = [ ]
>>> for _ in range(10):
...     values.append(metric(torch.rand(5, 3, 28, 28)))
>>> fig_, ax_ = metric.plot(values)
../_images/total_variation-2.png

Functional Interface

torchmetrics.functional.image.total_variation(img, reduction='sum')[source]

Compute total variation loss.

Parameters:
  • img (Tensor) – A Tensor of shape (N, C, H, W) consisting of images

  • reduction (Optional[Literal['mean', 'sum', 'none']]) –

    a method to reduce metric score over samples.

    • 'mean': takes the mean over samples

    • 'sum': takes the sum over samples

    • None or 'none': return the score per sample

Return type:

Tensor

Returns:

A loss scalar value containing the total variation

Raises:
  • ValueError – If reduction is not one of 'sum', 'mean', 'none' or None

  • RuntimeError – If img is not 4D tensor

Example

>>> import torch
>>> from torchmetrics.functional.image import total_variation
>>> _ = torch.manual_seed(42)
>>> img = torch.rand(5, 3, 28, 28)
>>> total_variation(img)
tensor(7546.8018)
Read the Docs v: stable
Versions
latest
stable
v1.1.0
v1.0.3
v1.0.2
v1.0.1
v1.0.0
v0.11.4
v0.11.3
v0.11.2
v0.11.1
v0.11.0
v0.10.3
v0.10.2
v0.10.1
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.2
v0.8.1
v0.8.0
v0.7.3
v0.7.2
v0.7.1
v0.7.0
v0.6.2
v0.6.1
v0.6.0
v0.5.1
v0.5.0
v0.4.1
v0.4.0
v0.3.2
v0.3.1
v0.3.0
v0.2.0
v0.1.0
Downloads
pdf
html
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.