uniform_random

    该OP返回数值服从范围[, max)内均匀分布的随机Tensor,形状为 shape,数据类型为 dtype

    参数:

    • shape (list|tuple|Tensor) - 生成的随机Tensor的形状。如果 shape 是list、tuple,则其中的元素可以是int,或者是形状为[1]且数据类型为int32、int64的Tensor。如果 shape 是Tensor,则是数据类型为int32、int64的1-D Tensor。

    • dtype (str|np.dtype|core.VarDesc.VarType, 可选) - 输出Tensor的数据类型,支持float32、float64。默认值为float32。

    • max (float|int,可选) - 要生成的随机值范围的上限,max不包含在范围中。支持的数据类型:float、int。默认值为1.0。

    • seed (int,可选) - 随机种子,用于生成样本。0表示使用系统生成的种子。注意如果种子不为0,该操作符每次都生成同样的随机数。支持的数据类型:int。默认为 0。

    • name (str, 可选) - 输出的名字。一般无需设置,默认值为None。该参数供开发人员打印调试信息时使用,具体用法请参见 Name

    返回:

    抛出异常:

    • TypeError - 如果 shape 的类型不是list、tuple、Tensor。

    • TypeError - 如果 dtype 不是float32、float64。

    代码示例

    1. import numpy as np
    2. train_program = fluid.Program()
    3. with fluid.program_guard(train_program, startup_program):
    4. # example 1:
    5. # attr shape is a list which doesn't contain Tensor.
    6. result_1 = fluid.layers.uniform_random(shape=[3, 4])
    7. # example 2:
    8. # attr shape is a list which contains Tensor.
    9. dim_1 = fluid.layers.fill_constant([1],"int64",3)
    10. dim_2 = fluid.layers.fill_constant([1],"int32",5)
    11. # example 3:
    12. # attr shape is a Tensor, the data type must be int32 or int64
    13. var_shape = fluid.data(name='var_shape', shape=[2], dtype="int64")
    14. result_3 = fluid.layers.uniform_random(var_shape)
    15. var_shape_int32 = fluid.data(name='var_shape_int32', shape=[2], dtype="int32")
    16. result_4 = fluid.layers.uniform_random(var_shape_int32)
    17. shape_1 = np.array([3,4]).astype("int64")
    18. shape_2 = np.array([3,4]).astype("int32")
    19. exe = fluid.Executor(fluid.CPUPlace())
    20. exe.run(startup_program)