Shortcuts

Total Variation (TV)

Module Interface

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

Computes Total Variation loss (TV).

Parameters
  • reduction (Literal[‘mean’, ‘sum’, ‘none’, 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 import TotalVariation
>>> _ = torch.manual_seed(42)
>>> tv = TotalVariation()
>>> img = torch.rand(5, 3, 28, 28)
>>> tv(img)
tensor(7546.8018)

Initializes internal Module state, shared by both nn.Module and ScriptModule.

compute()[source]

Compute final total variation.

Return type

Tensor

update(img)[source]

Update current score with batch of input images.

Parameters

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

Return type

None

Functional Interface

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

Computes total variation loss.

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

  • reduction (Literal[‘mean’, ‘sum’, ‘none’, 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 import total_variation
>>> _ = torch.manual_seed(42)
>>> img = torch.rand(5, 3, 28, 28)
>>> total_variation(img)
tensor(7546.8018)