torch.std_mean¶
- torch.std_mean(input, dim=None, *, correction=1, keepdim=False, out=None)¶
Calculates the standard deviation and mean over the dimensions specified by
dim
.dim
can be a single dimension, list of dimensions, orNone
to reduce over all dimensions.The standard deviation (\(\sigma\)) is calculated as
\[\sigma = \sqrt{\frac{1}{\max(0,~N - \delta N)}\sum_{i=0}^{N-1}(x_i-\bar{x})^2} \]where \(x\) is the sample set of elements, \(\bar{x}\) is the sample mean, \(N\) is the number of samples and \(\delta N\) is the
correction
.If
keepdim
isTrue
, the output tensor is of the same size asinput
except in the dimension(s)dim
where it is of size 1. Otherwise,dim
is squeezed (seetorch.squeeze()
), resulting in the output tensor having 1 (orlen(dim)
) fewer dimension(s).- Parameters:
- Keyword Arguments:
correction (int) –
difference between the sample size and sample degrees of freedom. Defaults to Bessel’s correction,
correction=1
.Changed in version 2.0: Previously this argument was called
unbiased
and was a boolean withTrue
corresponding tocorrection=1
andFalse
beingcorrection=0
.keepdim (bool) – whether the output tensor has
dim
retained or not.out (Tensor, optional) – the output tensor.
- 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]]))