mindspore.ops.var_mean

查看源文件
mindspore.ops.var_mean(input, axis=None, ddof=0, keepdims=False)[源代码]

计算tensor在指定轴上的方差及平均值。

参数:
  • input (Tensor[Number]) - 输入tensor。

  • axis (Union[int, tuple(int)],可选) - 指定轴。如果为 None ,计算 input 中的所有元素。默认 None

  • ddof (Union[int, bool],可选) - δ自由度。默认 0

    • 如果为整数,计算中使用的除数是 Nddof ,其中 N 表示元素的数量。

    • 如果为bool值, TrueFalse 分别对应ddof为整数时的 10

    • 如果取值为0、1、True或False,支持的平台只有 AscendCPU 。其他情况下,支持平台是 AscendGPUCPU

  • keepdims (bool,可选) - 输出tensor是否保留维度。默认 False

返回:

两个tensor组成的tuple(var, mean)。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> input = mindspore.tensor([[1., 3, 4, 2],
...                           [4, 2, 5, 3],
...                           [5, 4, 2, 3]])
>>> # case 1: By default, compute the variance and mean of all elements.
>>> mindspore.ops.var_mean(input)
(Tensor(shape=[], dtype=Float32, value= 1.47222),
 Tensor(shape=[], dtype=Float32, value= 3.16667))
>>>
>>> # case 2: Compute the variance and mean along axis 0.
>>> output = mindspore.ops.var_mean(input, axis=0)
(Tensor(shape=[4], dtype=Float32, value= [ 2.88888884e+00,  6.66666687e-01,  1.55555570e+00,  2.22222194e-01]),
 Tensor(shape=[4], dtype=Float32, value= [ 3.33333325e+00,  3.00000000e+00,  3.66666675e+00,  2.66666675e+00]))
>>>
>>> # case 3: If keepdims=True, the output shape will be same of that of the input.
>>> output = mindspore.ops.var_mean(input, axis=0, keepdims=True)
(Tensor(shape=[1, 4], dtype=Float32, value=
 [[ 2.88888884e+00,  6.66666687e-01,  1.55555570e+00,  2.22222194e-01]]),
 Tensor(shape=[1, 4], dtype=Float32, value=
 [[ 3.33333325e+00,  3.00000000e+00,  3.66666675e+00,  2.66666675e+00]]))
>>>
>>> # case 4: If ddof=1:
>>> output = mindspore.ops.var_mean(input, axis=0, keepdims=True, ddof=1)
(Tensor(shape=[1, 4], dtype=Float32, value=
 [[ 4.33333349e+00,  1.00000000e+00,  2.33333349e+00,  3.33333313e-01]]),
 Tensor(shape=[1, 4], dtype=Float32, value=
 [[ 3.33333325e+00,  3.00000000e+00,  3.66666675e+00,  2.66666675e+00]]))
>>>
>>> # case 5: If ddof=True, same as ddof=1:
>>> output = mindspore.ops.var_mean(input, axis=0, keepdims=True, ddof=True)
(Tensor(shape=[1, 4], dtype=Float32, value=
 [[ 4.33333349e+00,  1.00000000e+00,  2.33333349e+00,  3.33333313e-01]]),
 Tensor(shape=[1, 4], dtype=Float32, value=
 [[ 3.33333325e+00,  3.00000000e+00,  3.66666675e+00,  2.66666675e+00]]))
>>>
>>> # case 6: If ddof=False, same as ddof=0:
>>> output = mindspore.ops.var_mean(input, axis=0, keepdims=True, ddof=False)
(Tensor(shape=[1, 4], dtype=Float32, value=
 [[ 2.88888884e+00,  6.66666687e-01,  1.55555570e+00,  2.22222194e-01]]),
 Tensor(shape=[1, 4], dtype=Float32, value=
 [[ 3.33333325e+00,  3.00000000e+00,  3.66666675e+00,  2.66666675e+00]]))