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:
          给定:
               input =[[0.946741  , 0.1357001 , 0.38086128]]    # input.shape=[1,3]
               shape=[2,4]
          此时,output_dim_idx = 0, input_dim_idx = 0,result.shape[0] = input.shape[0]
          则:
               result=[[ 0.3443427 , -0.23056602,  0.3477049 ,  0.06139076]]    # result.shape=[1,4]

示例2:
          给定:
               input =[[0.946741  , 0.1357001 , 0.38086128]]     # input.shape=[1,3]
               shape=[2,4]
               input_dim_idx=1
               output_dim_idx=1
          此时,output_dim_idx = 1, input_dim_idx = 1,result.shape[1] = input.shape[1]
          则:
               result=[[-0.23133647, -0.84195036,  0.21441269],
                      [-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

代码示例:

import paddle.fluid as fluid
import paddle.fluid.layers as layers


input = fluid.data(name="input", shape=[13, 11], dtype='float32')
# examp 1:
# input_dim_idx和output_dim_idx使用默认值
out1 = layers.uniform_random_batch_size_like(input, [3, 5])
out1_shape = layers.shape(out1) # [13,5]

# example 2:
# input_dim_idx和output_dim_idx使用指定值
out2=layers.uniform_random_batch_size_like(input, [3, 5], input_dim_idx=1, output_dim_idx=1)
out2_shape = layers.shape(out2) # [3,11]