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:
Return type:
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()

>>> # 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)


## 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)


© Copyright Copyright (c) 2020-2023, Lightning-AI et al... Revision 99d6d9d6.

Built with Sphinx using a theme provided by Read the Docs.
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