mindspore.ops.uniform

mindspore.ops.uniform(shape, minval, maxval, seed=None, dtype=mstype.float32)[源代码]

生成服从均匀分布的随机数。

Note

广播后,任意位置上Tensor的最小值都必须小于最大值。

参数:
  • shape (tuple) - 指定输出shape,任意维度的Tensor。其 \((N,*)\) 的长度应小于8。

  • minval (Tensor) - 指定生成随机值的最小值,其数据类型为int32或float32。如果数据类型为int32,则只允许输入一个数字。

  • maxval (Tensor) - 指定生成随机值的最大值,其数据类型为int32或float32。如果数据类型为int32,则只允许输入一个数字。

  • seed (int) - 指定随机种子,用于随机数生成器生成伪随机数。随机数为非负数。默认值:None(将被视为0)。

  • dtype (mindspore.dtype) - 指定输入的数据类型。如果数据类型为int32,则从离散型均匀分布中生成数值型数据;如果数据类型是float32,则从连续型均匀分布中生成数值型数据。仅支持这两种数据类型。默认值:mindspore.float32。

返回:

Tensor,shape等于输入 shapeminvalmaxval 广播后的shape。数据类型由输入 dtype 决定。

异常:
  • TypeError - shape 不是tuple。

  • TypeError - minvalmaxval 的数据类型既不是int32,也不是float32,并且 minval 的数据类型与 maxval 的不同。

  • TypeError - seed 不是int。

  • TypeError - dtype 既不是int32,也不是float32。

支持平台:

Ascend GPU CPU

样例:

>>> from mindspore import Tensor, ops
>>> import mindspore
>>> import numpy as np
>>> # For discrete uniform distribution, only one number is allowed for both minval and maxval:
>>> shape = (4, 2)
>>> minval = Tensor(1, mindspore.int32)
>>> maxval = Tensor(2, mindspore.int32)
>>> output = ops.uniform(shape, minval, maxval, seed=5, dtype=mindspore.int32)
>>>
>>> # For continuous uniform distribution, minval and maxval can be multi-dimentional:
>>> shape = (3, 1, 2)
>>> minval = Tensor(np.array([[3, 4], [5, 6]]), mindspore.float32)
>>> maxval = Tensor([8.0, 10.0], mindspore.float32)
>>> output = ops.uniform(shape, minval, maxval, seed=5)
>>> result = output.shape
>>> print(result)
(3, 2, 2)