metrics – Common Metrics¶
-
neuralnet_pytorch.metrics.huber_loss(x, y, reduce='mean')[source]¶ An alias for
torch.nn.functional.smooth_l1_loss().
-
neuralnet_pytorch.metrics.first_derivative_loss(x, y, p=2)[source]¶ Calculates lp loss between the first derivatives of the inputs.
Parameters: - x – a
torch.Tensor. - y – a
torch.Tensorof the same shape as x. - p – order of the norm.
Returns: the scalar loss between the first derivatives of the inputs.
- x – a
-
neuralnet_pytorch.metrics.lp_loss(x, y, p=2, reduction='mean')[source]¶ Calculates p-norm of (x - y).
Parameters: - x – a
torch.Tensor. - y – a
torch.Tensorof the same shape as x. - p – order of the norm.
- reduction –
'mean'or'sum'.
Returns: the p-norm of (x - y).
- x – a
-
neuralnet_pytorch.metrics.ssim(img1, img2, max_val=1.0, filter_size=11, filter_sigma=1.5, k1=0.01, k2=0.03, cs_map=False)[source]¶ Returns the Structural Similarity Map between img1 and img2. This function attempts to match the functionality of ssim_index_new.m by Zhou Wang: http://www.cns.nyu.edu/~lcv/ssim/msssim.zip
Parameters: - img1 – a 4D
torch.Tensor. - img2 – a 4D
torch.Tensorof the same shape as img1. - max_val – the dynamic range of the images (i.e., the difference between the maximum the and minimum allowed values).
- filter_size – size of blur kernel to use (will be reduced for small images).
- filter_sigma – standard deviation for Gaussian blur kernel (will be reduced for small images).
- k1 – constant used to maintain stability in the SSIM calculation (0.01 in the original paper).
- k2 – constant used to maintain stability in the SSIM calculation (0.03 in the original paper).
Returns: pair containing the mean SSIM and contrast sensitivity between img1 and img2.
Raise: RuntimeError: If input images don’t have the same shape or don’t have four dimensions: [batch_size, height, width, depth].
- img1 – a 4D
-
neuralnet_pytorch.metrics.psnr(x, y)[source]¶ Peak-signal-to-noise ratio for [0,1] images.
Parameters: - x – a
torch.Tensor. - y – a
torch.Tensorof the same shape as x.
- x – a
-
neuralnet_pytorch.metrics.chamfer_loss(xyz1, xyz2, reduce='mean', c_code=False)[source]¶ Calculates the Chamfer distance between two batches of point clouds. The Pytorch code is adapted from DenseLidarNet. The CUDA code is adapted from AtlasNet.
Parameters: - xyz1 – a point cloud of shape
(b, n1, k)or(n1, k). - xyz2 – a point cloud of shape (b, n2, k) or (n2, k).
- reduce –
'mean'or'sum'. Default:'mean'. - c_code – whether to use CUDA implementation. This version is much more memory-friendly and slightly faster.
Returns: the Chamfer distance between the inputs.
- xyz1 – a point cloud of shape
-
neuralnet_pytorch.metrics.emd_loss(xyz1, xyz2, reduce='mean', sinkhorn=False)[source]¶ Calculates the Earth Mover Distance (or Wasserstein metric) between two sets of points.
Parameters: - xyz1 – a point cloud of shape
(b, n1, k)or(n1, k). - xyz2 – a point cloud of shape (b, n2, k) or (n2, k).
- reduce –
'mean'or'sum'. Default:'mean'. - sinkhorn – whether to use the Sinkhorn approximation of the Wasserstein distance.
Falsewill fall back to a CUDA implementation, which is only available if the CUDA-extended neuralnet-pytorch is installed. Default:True.
Returns: the EMD between the inputs.
- xyz1 – a point cloud of shape
-
neuralnet_pytorch.metrics.tv_reg(y)[source]¶ Total variation regularization.
Parameters: y – a tensor of at least 2D. The last 2 dimensions will be regularized. Returns: the total variation loss.
-
neuralnet_pytorch.metrics.spectral_norm(module, name='weight', n_power_iterations=1, eps=1e-12, dim=None)[source]¶ Applies
torch.nn.utils.spectral_norm()recursively to module and all of its submodules.Parameters: - module – containing module.
- name – name of weight parameter.
Default:
'weight'. - n_power_iterations – number of power iterations to calculate spectral norm.
- eps – epsilon for numerical stability in calculating norms.
- dim – dimension corresponding to number of outputs,
the default is
0, except for modules that are instances of ConvTranspose{1,2,3}d, when it is1.
Returns: the original module with the spectral norm hook.