# torch.var

torch.var(*input*, *dim=None*, ***, *correction=1*, *keepdim=False*, *out=None*) → [Tensor](../tensors.html#torch.Tensor)

Calculates the variance over the dimensions specified by `dim`. `dim`
can be a single dimension, list of dimensions, or `None` to reduce over all
dimensions.

The variance (σ2\sigma^2σ2) is calculated as

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

σ2=max(0, N−δN)1​i=0∑N−1​(xi​−xˉ)2

where xxx is the sample set of elements, xˉ\bar{x}xˉ is the
sample mean, NNN is the number of samples and δN\delta Nδ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()`](torch.squeeze.html#torch.squeeze)), resulting in the
output tensor having 1 (or `len(dim)`) fewer dimension(s).

Parameters:

- **input** ([*Tensor*](../tensors.html#torch.Tensor)) - the input tensor.
- **dim** ([*int*](https://docs.python.org/3/library/functions.html#int)*or*[*tuple*](https://docs.python.org/3/library/stdtypes.html#tuple)*of**ints**,**optional*) - the dimension or dimensions to reduce.
If `None`, all dimensions are reduced.

Keyword Arguments:

- **correction** ([*int*](https://docs.python.org/3/library/functions.html#int)) -

difference between the sample size and sample degrees of freedom.
Defaults to [Bessel's correction](https://en.wikipedia.org/wiki/Bessel%27s_correction), `correction=1`.

Changed in version 2.0: Previously this argument was called `unbiased` and was a boolean
with `True` corresponding to `correction=1` and `False` being
`correction=0`.
- **keepdim** ([*bool*](https://docs.python.org/3/library/functions.html#bool)*,**optional*) - whether the output tensor has `dim` retained or not. Default: `False`.
- **out** ([*Tensor*](../tensors.html#torch.Tensor)*,**optional*) - the output tensor.

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]]
... ) # fmt: skip
>>> torch.var(a, dim=1, keepdim=True)
tensor([[1.0631],
 [0.5590],
 [1.4893],
 [0.8258]])
```