torch.std_mean — PyTorch 2.7 documentation (original) (raw)

torch.std_mean(input, dim=None, *, correction=1, keepdim=False, out=None)

Calculates the standard deviation and mean over the dimensions specified bydim. dim can be a single dimension, list of dimensions, orNone to reduce over all dimensions.

The standard deviation (σ\sigma) is calculated as

σ=1max⁡(0, N−δN)∑i=0N−1(xi−xˉ)2\sigma = \sqrt{\frac{1}{\max(0,~N - \delta N)}\sum_{i=0}^{N-1}(x_i-\bar{x})^2}

where xx is the sample set of elements, xˉ\bar{x} is the sample mean, NN is the number of samples and δN\delta N is the correction.

If keepdim is True, the output tensor is of the same size as input except in the dimension(s) dim where it is of size 1. Otherwise, dim is squeezed (see torch.squeeze()), resulting in the output tensor having 1 (or len(dim)) fewer dimension(s).

Parameters

Keyword Arguments

Returns

A tuple (std, mean) containing the standard deviation and mean.

Example

a = torch.tensor( ... [[ 0.2035, 1.2959, 1.8101, -0.4644], ... [ 1.5027, -0.3270, 0.5905, 0.6538], ... [-1.5745, 1.3330, -0.5596, -0.6548], ... [ 0.1264, -0.5080, 1.6420, 0.1992]]) torch.std_mean(a, dim=0, keepdim=True) (tensor([[1.2620, 1.0028, 1.0957, 0.6038]]), tensor([[ 0.0645, 0.4485, 0.8707, -0.0665]]))