mindspore.mint.var

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

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

方差 (δ2) 计算如下:

δ2=1max(0,NδN)i=0N1(xix¯)2

其中 x 表示用来计算方差的样本集, x¯ 表示样本的均值, N 表示样本的数量,δ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为 (x0,x1,...,xR)

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

  • 如果 dim 为int,如取值为 1 ,且 keepdimFalse ,则返回Tensor的shape为 (x0,x2,...,xR)

  • 如果 dim 为tuple(int)或者list(int),如取值为 (1, 2) ,且 keepdimFalse ,则返回Tensor的shape为 (x0,x3,...,xR)

异常:
  • 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]]