uniform_random_batch_size_like

  • paddle.fluid.layers.uniform_random_batch_size_like(input, shape, dtype='float32', input_dim_idx=0, output_dim_idx=0, min=-1.0, max=1.0, seed=0)[源代码]

该OP使用从范围[min,max)内均匀分布采样的随机值初始化一个Tensor,且输出Tensor的 指定维度将被设置为与输入Tensor指定维度相同的值。

  1. 示例1:
  2. 给定:
  3. input =[[0.946741 , 0.1357001 , 0.38086128]] # input.shape=[1,3]
  4. shape=[2,4]
  5. 此时,output_dim_idx = 0 input_dim_idx = 0result.shape[0] = input.shape[0]
  6. 则:
  7. result=[[ 0.3443427 , -0.23056602, 0.3477049 , 0.06139076]] # result.shape=[1,4]
  8.  
  9. 示例2:
  10. 给定:
  11. input =[[0.946741 , 0.1357001 , 0.38086128]] # input.shape=[1,3]
  12. shape=[2,4]
  13. input_dim_idx=1
  14. output_dim_idx=1
  15. 此时,output_dim_idx = 1 input_dim_idx = 1result.shape[1] = input.shape[1]
  16. 则:
  17. result=[[-0.23133647, -0.84195036, 0.21441269],
  18. [-0.08774924, 0.25605237, -0.09403259]] # result.shape=[2,3]
  • 参数:
    • input (Variable)- 输入Tensor,支持的数据类型:float32。
    • shape (list|tuple)- 输出Tensor的维度,类型为list或者tuple。支持的数据类型:int。
    • input_dim_idx (int,可选)- 输入Tensor指定维度的索引。该参数指定输入Tensor维度的值将用于调整输出Tensor维度的大小。支持的数据类型:int。默认值为0。
    • output_dim_idx (int,可选)- 输出Tensor指定维度的索引。该参数指定输出Tensor的维度将被设置为与输入Tensor指定维度相同的值。支持的数据类型:int。默认值为0。
    • min (float,可选)- 要生成的随机值范围的下限,min包含在范围中。支持的数据类型:float。默认值为 1.0。
    • max (float,可选)- 要生成的随机值范围的上限,max不包含在范围中。支持的数据类型:float。默认值为1.0。
    • seed (int,可选)- 用于生成样本的随机种子。0表示使用系统生成的种子,数据类型为int。注意如果seed不为0,则此算子将始终每次生成相同的随机数。支持的数据类型:int。默认值为0。
    • dtype (np.dtype | core.VarDesc.VarType | str,可选) - 输出Tensor的数据类型。支持的数据类型:float32, float64,默认值为float32。

返回: 表示随机初始化结果的Tensor,数据类型由dtype参数设置,该Tensor的维度由shape参数和输入Tensor的指定维度共同决定。

返回类型: Variable

代码示例:

  1. import paddle.fluid as fluid
  2. import paddle.fluid.layers as layers
  3.  
  4.  
  5. input = fluid.data(name="input", shape=[13, 11], dtype='float32')
  6. # examp 1:
  7. # input_dim_idx和output_dim_idx使用默认值
  8. out1 = layers.uniform_random_batch_size_like(input, [3, 5])
  9. out1_shape = layers.shape(out1) # [13,5]
  10.  
  11. # example 2:
  12. # input_dim_idx和output_dim_idx使用指定值
  13. out2=layers.uniform_random_batch_size_like(input, [3, 5], input_dim_idx=1, output_dim_idx=1)
  14. out2_shape = layers.shape(out2) # [3,11]