You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

mindspore.nn.Moments.rst 3.2 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. mindspore.nn.Moments
  2. ====================
  3. .. py:class:: mindspore.nn.Moments(axis=None, keep_dims=None)
  4. 计算 `x` 的均值和方差。
  5. 均值和方差是通过聚合 `x` 在 `axis` 上的值来计算的。特别的,如果 `x` 是1-D的Tensor, `axis` 等于0,这相当于计算向量的均值和方差。
  6. **参数:**
  7. - **axis** (Union[int, tuple(int), None]) - 沿指定 `axis` 计算均值和方差,值为None时代表计算 `x` 所有值的均值和方差。默认值:None。
  8. - **keep_dims** (Union[bool, None]) - 如果为True,计算结果会保留 `axis` 的维度,即均值和方差的维度与输入的相同。如果为False或None,则会消减 `axis` 的维度。默认值:None。
  9. **输入:**
  10. - **x** (Tensor) - 用于计算均值和方差的Tensor。数据类型仅支持float16和float32。shape为 :math:`(N,*)`, 其中 :math:`*` 表示任意的附加维度数。
  11. **输出:**
  12. - **mean** (Tensor) - `x` 在 `axis` 上的均值,数据类型与输入 `x` 相同。
  13. - **variance** (Tensor) - `x` 在 `axis` 上的方差,数据类型与输入 `x` 相同。
  14. **异常:**
  15. - **TypeError** - `axis` 不是int,tuple或None。
  16. - **TypeError** - `keep_dims` 既不是bool也不是None。
  17. - **TypeError** - `x` 的数据类型既不是float16也不是float32。
  18. **支持平台:**
  19. ``Ascend`` ``GPU`` ``CPU``
  20. **样例:**
  21. >>> x = Tensor(np.array([[[[1, 2, 3, 4], [3, 4, 5, 6]]]]), mindspore.float32)
  22. >>> net = nn.Moments(axis=0, keep_dims=True)
  23. >>> output = net(x)
  24. >>> print(output)
  25. (Tensor(shape=[1, 1, 2, 4], dtype=Float32, value=
  26. [[[[ 1.00000000e+00, 2.00000000e+00, 3.00000000e+00, 4.00000000e+00],
  27. [ 3.00000000e+00, 4.00000000e+00, 5.00000000e+00, 6.00000000e+00]]]]),
  28. Tensor(shape=[1, 1, 2, 4], dtype=Float32, value=
  29. [[[[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],
  30. [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]]]]))
  31. >>> net = nn.Moments(axis=1, keep_dims=True)
  32. >>> output = net(x)
  33. >>> print(output)
  34. (Tensor(shape=[1, 1, 2, 4], dtype=Float32, value=
  35. [[[[ 1.00000000e+00, 2.00000000e+00, 3.00000000e+00, 4.00000000e+00],
  36. [ 3.00000000e+00, 4.00000000e+00, 5.00000000e+00, 6.00000000e+00]]]]),
  37. Tensor(shape=[1, 1, 2, 4], dtype=Float32, value=
  38. [[[[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],
  39. [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]]]]))
  40. >>> net = nn.Moments(axis=2, keep_dims=True)
  41. >>> output = net(x)
  42. >>> print(output)
  43. (Tensor(shape=[1, 1, 1, 4], dtype=Float32, value=
  44. [[[[ 2.00000000e+00, 3.00000000e+00, 4.00000000e+00, 5.00000000e+00]]]]),
  45. Tensor(shape=[1, 1, 1, 4], dtype=Float32, value=
  46. [[[[ 1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00]]]]))
  47. >>> net = nn.Moments(axis=3, keep_dims=True)
  48. >>> output = net(x)
  49. >>> print(output)
  50. (Tensor(shape=[1, 1, 2, 1], dtype=Float32, value=
  51. [[[[ 2.50000000e+00],
  52. [ 4.50000000e+00]]]]), Tensor(shape=[1, 1, 2, 1], dtype=Float32, value=
  53. [[[[ 1.25000000e+00],
  54. [ 1.25000000e+00]]]]))