Peak Signal-to-Noise Ratio (PSNR)¶
Module Interface¶
- class torchmetrics.PeakSignalNoiseRatio(data_range=None, base=10.0, reduction='elementwise_mean', dim=None, compute_on_step=None, **kwargs)[source]
Computes Computes Peak Signal-to-Noise Ratio (PSNR):

Where
denotes the mean-squared-error function.- Parameters
data_range¶ (
Optional[float]) – the range of the data. If None, it is determined from the data (max - min). Thedata_rangemust be given whendimis not None.reduction¶ (
Literal[‘elementwise_mean’, ‘sum’, ‘none’, None]) –a method to reduce metric score over labels.
'elementwise_mean': takes the mean (default)'sum': takes the sum'none'orNone: no reduction will be applied
dim¶ (
Union[int,Tuple[int,...],None]) – Dimensions to reduce PSNR scores over, provided as either an integer or a list of integers. Default is None meaning scores will be reduced across all dimensions and all batches.compute_on_step¶ (
Optional[bool]) –Forward only calls
update()and returns None if this is set to False.Deprecated since version v0.8: Argument has no use anymore and will be removed v0.9.
kwargs¶ (
Dict[str,Any]) – Additional keyword arguments, see Advanced metric settings for more info.
- Raises
ValueError – If
dimis notNoneanddata_rangeis not given.
Example
>>> from torchmetrics import PeakSignalNoiseRatio >>> psnr = PeakSignalNoiseRatio() >>> preds = torch.tensor([[0.0, 1.0], [2.0, 3.0]]) >>> target = torch.tensor([[3.0, 2.0], [1.0, 0.0]]) >>> psnr(preds, target) tensor(2.5527)
Note
Half precision is only support on GPU for this metric
Initializes internal Module state, shared by both nn.Module and ScriptModule.
Functional Interface¶
- torchmetrics.functional.peak_signal_noise_ratio(preds, target, data_range=None, base=10.0, reduction='elementwise_mean', dim=None)[source]
Computes the peak signal-to-noise ratio.
- Parameters
data_range¶ (
Optional[float]) – the range of the data. If None, it is determined from the data (max - min).data_rangemust be given whendimis not None.reduction¶ (
Literal[‘elementwise_mean’, ‘sum’, ‘none’, None]) –a method to reduce metric score over labels.
'elementwise_mean': takes the mean (default)'sum': takes the sum'none'or None``: no reduction will be applied
dim¶ (
Union[int,Tuple[int,...],None]) – Dimensions to reduce PSNR scores over provided as either an integer or a list of integers. Default is None meaning scores will be reduced across all dimensions.
- Return type
- Returns
Tensor with PSNR score
- Raises
ValueError – If
dimis notNoneanddata_rangeis not provided.
Example
>>> from torchmetrics.functional import peak_signal_noise_ratio >>> pred = torch.tensor([[0.0, 1.0], [2.0, 3.0]]) >>> target = torch.tensor([[3.0, 2.0], [1.0, 0.0]]) >>> peak_signal_noise_ratio(pred, target) tensor(2.5527)
Note
Half precision is only support on GPU for this metric