mindspore.Tensor.std
- mindspore.Tensor.std(axis=None, ddof=0, keepdims=False)
详情请参考
mindspore.ops.std()
。- mindspore.Tensor.std(dim=None, *, correction=1, keepdim=False)
计算指定维度 dim 上的标准差。 dim 可以是单个维度、维度列表,也可以是 None ,表示移除所有维度。
标准差 (\(\sigma\)) 计算如下:
\[\sigma =\sqrt{\frac{1}{N-\delta N}\sum_{j-1}^{N-1}\left(s e l f_{i j}-\overline{x_{i}}\right)^{2}}\]其中 \(x\) 表示用来计算标准差的样本集, \(\bar{x}\) 表示样本的均值, \(N\) 表示样本的数量,\(\delta N\) 则为 correction 的值。
警告
这是一个实验性API,后续可能修改或删除。
- 参数:
dim (None, int, tuple(int), 可选) - 用来进行规约计算的维度。默认值为
None
,所有维度都进行规约计算。
- 关键字参数:
correction (int, 可选) - 样本大小和样本自由度之间的差异。默认为Bessel校正,默认值为
1
。keepdim (bool, 可选) - 是否保留输出Tensor的维度。如果为
True
,则保留缩小的维度,其大小为1,否则移除维度。默认值为False
。
- 返回:
Tensor,标准差。
假设输入 self 的shape为 \((x_0, x_1, ..., x_R)\) :
如果 dim 为(),且 keepdim 为
False
,则返回一个零维Tensor,表示输入Tensor self 中所有元素的标准差。如果 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 - 如果 self 不是Tensor。
TypeError - 如果 self 的数据类型不是bfloat16,float16或float32。
TypeError - 如果 dim 不是None,int或tuple类型。
TypeError - 如果 correction 不是int类型。
TypeError - 如果 keepdim 不是bool类型。
ValueError - 如果 dim 不在 \([-self.ndim, self.ndim)\) 范围内。
- 支持平台:
Ascend
样例:
>>> import numpy as np >>> from mindspore import mint, Tensor >>> input = Tensor(np.array([[1, 2, 3], [-1, 1, 4]]).astype(np.float32)) >>> output = input.std(dim=1, correction=1, keepdim=False) >>> print(output) [1. 2.5166113]