mindspore.mint.var

查看源文件
mindspore.mint.var(input, dim=None, *, correction=1, keepdim=False)[源代码]

计算指定维度 dim 上的方差。 dim 可以是单个维度、维度列表,也可以是 None , 表示移除所有维度。

方差 (\(\delta ^2\)) 计算如下:

\[\delta ^2 = \frac{1}{\max(0, N - \delta N)}\sum^{N - 1}_{i = 0}(x_i - \bar{x})^2\]

其中 \(x\) 表示用来计算方差的样本集, \(\bar{x}\) 表示样本的均值, \(N\) 表示样本的数量,\(\delta N\) 则为 correction 的值。

警告

这是一个实验性API,后续可能修改或删除。

参数:
  • input (Tensor) - 用来求方差的Tensor。

  • dim (None,int,tuple(int), 可选) - 用来进行规约计算的维度。默认值为 None ,所有维度都进行规约计算。

关键字参数:
  • correction (int, 可选) - 样本大小和样本自由度之间的差异。默认为Bessel校正,默认值为 1

  • keepdim (bool, 可选) - 是否保留输出Tensor的维度。如果为 True ,则保留缩小的维度,其大小为1,否则移除维度。默认值为 False

返回:

Tensor,方差。 假设输入 input 的shape为 \((x_0, x_1, ..., x_R)\)

  • 如果 dim 为(),且 keepdimFalse ,则返回一个零维Tensor,表示输入Tensor input 中所有元素的方差。

  • 如果 dim 为int,如取值为 1 ,且 keepdimFalse ,则返回Tensor的shape为 \((x_0, x_2, ..., x_R)\)

  • 如果 dim 为tuple(int)或者list(int),如取值为 (1, 2) ,且 keepdimFalse ,则返回Tensor的shape为 \((x_0, x_3, ..., x_R)\)

异常:
  • TypeError - 如果 input 不是Tensor。

  • TypeError - 如果 input 的数据类型不是bfloat16,float16或flaot32。

  • TypeError - 如果 dim 不是None,int,list或tuple类型。

  • TypeError - 如果 correction 不是int类型。

  • TypeError - 如果 keepdim 不是bool类型。

  • ValueError - 如果 dim 不在 \([-input.ndim, input.ndim)\) 范围内。

支持平台:

Ascend

样例:

>>> import mindspore
>>> from mindspore import Tensor, mint
>>> input = Tensor([[8, 2, 1], [5, 9, 3], [4, 6, 7]], mindspore.float32)
>>> output = mint.var(input, dim=0, correction=1, keepdim=True)
>>> print(output)
[[ 4.333333, 12.333333, 9.333333]]