mindspore.Tensor.var
- mindspore.Tensor.var(axis=None, ddof=0, keepdims=False)
在指定维度上的方差。
方差是平均值的平方偏差的平均值,即:\(var = mean(abs(x - x.mean())**2)\) 。
返回方差值,默认情况下计算展开Tensor的方差,否则在指定维度上计算。
说明
不支持NumPy参数 dtype 、 out 和 where 。
- 参数:
axis (Union[None, int, tuple(int)],可选) - 维度,在指定维度上计算方差。其默认值是展开Tensor的方差。默认值:
None
。ddof (int,可选) - δ自由度。默认值:
0
。计算中使用的除数是 \(N - ddof\) ,其中 \(N\) 表示元素的数量。keepdims (bool,可选) - 是否保留输出Tensor的维度。如果为
True
,则保留缩小的维度,大小为1。否则移除维度。默认值:False
。
- 返回:
含有方差值的Tensor。
- 异常:
TypeError - 如果 axis 不是None,int或tuple类型。
TypeError - 如果 ddof 不是int类型。
TypeError - 如果 keepdims 不是bool类型。
ValueError - 如果 axis 不在 \([-self.ndim, self.ndim)\) 范围内。
- 其他API参考:
mindspore.Tensor.mean()
:通过对Tensor中的所有元素求平均值来减少Tensor的维数。mindspore.Tensor.std()
:计算沿指定轴的标准差。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import numpy as np >>> from mindspore import Tensor >>> input_x = Tensor(np.array([1., 2., 3., 4.], np.float32)) >>> output = input_x.var() >>> print(output) 1.25
- Tensor.var(dim=None, *, correction=1, keepdim=False) Tensor
计算指定维度 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 的值。
- 参数:
dim (None,int,tuple(int),可选) - 用来进行规约计算的维度。默认值为
None
,所有维度都进行规约计算。
- 关键字参数:
correction (int,可选) - 样本大小和样本自由度之间的差异。默认为Bessel校正,默认值为
1
。keepdim (bool,可选) - 是否保留输出Tensor的维度。如果为
True
,则保留缩小的维度,其大小为1,否则移除维度。默认值为False
。
- 返回:
Tensor,方差。 假设 self Tensor的shape为 \((x_0, x_1, ..., x_R)\) :
如果 dim 为(),且 keepdim 为
False
,则返回一个零维Tensor,表示 self Tensor中所有元素的方差。如果 dim 为int,如取值为
1
,且 keepdim 为False
,则返回Tensor的shape为 \((x_0, x_2, ..., x_R)\) 。如果 dim 为tuple(int)或者list(int),如取值为
(1, 2)
,且 keepdim 为False
,则返回Tensor的shape为 \((x_0, x_3, ..., x_R)\) 。
- 异常:
TypeError - 如果 dim 不是None,int,list或tuple类型。
TypeError - 如果 correction 不是int类型。
TypeError - 如果 keepdim 不是bool类型。
ValueError - 如果 dim 不在 \([-self.ndim, self.ndim)\) 范围内。
- 支持平台:
Ascend
样例:
>>> import mindspore >>> from mindspore import Tensor >>> input_x = Tensor([[8, 2, 1], [5, 9, 3], [4, 6, 7]], mindspore.float32) >>> output = input_x.var(dim=0, correction=1, keepdim=True) >>> print(output) [[ 4.333333, 12.333333, 9.333333]]