评价此页

torch.var_mean#

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

计算在 dim 指定的维度上的方差和均值。dim 可以是单个维度、维度列表,或者 None 表示对所有维度进行约简。

方差 (σ2\sigma^2) 的计算公式为

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

其中 xx 是样本元素集合,xˉ\bar{x} 是样本均值,NN 是样本数量,δN\delta Ncorrection

如果 keepdimTrue,则输出张量的大小与 input 相同,只是在 dim 指定的维度上大小为 1。否则,dim 会被压缩(参见 torch.squeeze()),导致输出张量具有维度数量少 1(或 len(dim))的维度。

参数
  • input (Tensor) – 输入张量。

  • dim (inttuple of ints, optional) – 要约简的维度或维度。如果为 None,则约简所有维度。

关键字参数
  • correctionint)–

    样本大小与样本自由度之间的差值。默认为 贝塞尔校正,即 correction=1

    2.0 版本已更改: 以前此参数称为 unbiased,并且是一个布尔值,其中 True 对应于 correction=1,而 False 对应于 correction=0

  • keepdim (bool, optional) – 输出张量是否保留 dim。默认值:False

  • out (Tensor, optional) – 输出张量。

返回

一个包含方差和均值的元组 (var, mean)。

示例

>>> 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_mean(a, dim=0, keepdim=True)
(tensor([[1.5926, 1.0056, 1.2005, 0.3646]]),
 tensor([[ 0.0645,  0.4485,  0.8707, -0.0665]]))