diff --git a/doc/fluid/api_cn/layers_cn.rst b/doc/fluid/api_cn/layers_cn.rst index 73fc9c1f1869000be1834309c51bc8abe7a58c5d..1d042d526b1f7b687e691c268b6616f85ec2a7aa 100644 --- a/doc/fluid/api_cn/layers_cn.rst +++ b/doc/fluid/api_cn/layers_cn.rst @@ -1714,7 +1714,12 @@ BRelu 激活函数 - **name** (str|None) - 该层的名称(可选)。如果设置为None,该层将被自动命名 +**代码示例:** + +.. code-block:: python + x = fluid.layers.data(name="x", shape=[2,3,16,16], dtype=”float32”) + y = fluid.layers.brelu(x, t_min=1.0, t_max=20.0) @@ -1826,7 +1831,7 @@ clip clip算子 -clip运算符限制给定输入的值在一个区间内。间隔使用参数“min”和“max”来指定:公式为 +clip运算符限制给定输入的值在一个区间内。间隔使用参数"min"和"max"来指定:公式为 .. math:: Out=min(max(X,min),max) @@ -1841,9 +1846,13 @@ clip运算符限制给定输入的值在一个区间内。间隔使用参数“m 返回类型: 输出(Variable)。 +**代码示例:** +.. code-block:: python - + input = fluid.layers.data( + name='data', shape=[1], dtype='float32') + reward = fluid.layers.clip(x=input, min=-1.0, max=1.0) @@ -1866,13 +1875,6 @@ ClipByNorm算子 其中, :math:`norm(X)` 代表 ``x`` 的L2范数。 -例如, - -.. code-block:: python - - data = fluid.layer.data( name=’data’, shape=[2, 4, 6], dtype=’float32’) - reshaped = fluid.layers.clip_by_norm( x=data, max_norm=0.5) - 参数: - **x** (Variable)- (Tensor) clip_by_norm运算的输入,维数必须在[1,9]之间。 @@ -1883,7 +1885,13 @@ ClipByNorm算子 返回类型: Variable +**代码示例:** + +.. code-block:: python + input = fluid.layers.data( + name='data', shape=[1], dtype='float32') + reward = fluid.layers.clip_by_norm(x=input, max_norm=1.0) @@ -3387,7 +3395,12 @@ ELU激活层(ELU Activation Operator) 返回类型: 输出(Variable) +**代码示例:** + +.. code-block:: python + x = fluid.layers.data(name="x", shape=[3,10,32,32], dtype="float32") + y = fluid.layers.elu(x, alpha=0.2) @@ -3953,7 +3966,12 @@ sigmoid的分段线性逼近(https://arxiv.org/abs/1603.00391),比sigmoid快 - **name** (str|None) - 这个层的名称(可选)。如果设置为None,该层将被自动命名。 +**代码示例:** + +.. code-block:: python + x = fluid.layers.data(name="x", shape=[3,10,32,32], dtype="float32") + y = fluid.layers.hard_sigmoid(x, slope=0.3, offset=0.8) @@ -4173,25 +4191,36 @@ image_resize 输入张量的shape为(num_batch, channels, in_h, in_w),并且调整大小只适用于最后两个维度(高度和宽度)。 -支持重新取样方法: 双线性插值 - +支持重新取样方法: + + BILINEAR:双线性插值 + NEAREST:最近邻插值 + 参数: - **input** (Variable) - 图片调整层的输入张量,这是一个shape=4的张量(num_batch, channels, in_h, in_w) - **out_shape** (list|tuple|Variable|None) - 图片调整层的输出,shape为(out_h, out_w)。默认值:None - **scale** (float|None)-输入的高度或宽度的乘数因子 。 out_shape和scale至少要设置一个。out_shape的优先级高于scale。默认值:None - **name** (str|None) - 该层的名称(可选)。如果设置为None,该层将被自动命名 - **resample** (str) - 重采样方法。目前只支持“双线性”。默认值:双线性插值 + - **actual_shape** (Variable) - 可选输入,用于动态指定输出形状。如果指定actual_shape,图像将根据给定的形状调整大小,而不是根据指定形状的 :code:`out_shape` 和 :code:`scale` 进行调整。也就是说, :code:`actual_shape` 具有最高的优先级。如果希望动态指定输出形状,建议使用 :code:`actual_shape` 而不是 :code:`out_shape` 。在使用actual_shape指定输出形状时,还需要设置out_shape和scale之一,否则在图形构建阶段会出现错误。默认值:None + 返回: 4维tensor,shape为 (num_batches, channls, out_h, out_w). 返回类型: 变量(variable) +抛出异常: + - :code:`TypeError` - out_shape应该是一个列表、元组或变量。 + - :code:`TypeError` - actual_shape应该是变量或None + - :code:`ValueError` - image_resize的"resample"只能是"BILINEAR"或"NEAREST"。 + - :code:`ValueError` - out_shape 和 scale 不能为 None + - :code:`ValueError` - out_shape 的长度必须为 2 **代码示例** .. code-block:: python - out = fluid.layers.image_resize(input, out_shape=[12, 12]) + out = fluid.layers.image_resize(input, out_shape=[12, 12], resample="NEAREST") @@ -4396,7 +4425,12 @@ LeakyRelu 激活函数 - **alpha** (FLOAT|0.02) - 负斜率,值很小。 - **name** (str|None) - 此层的名称(可选)。如果设置为None,该层将被自动命名。 +**代码示例:** + +.. code-block:: python + x = fluid.layers.data(name="x", shape=[2,3,16,16], dtype="float32") + y = fluid.layers.leaky_relu(x, alpha=0.01) @@ -4670,6 +4704,16 @@ logical_and算子 返回类型: 输出(Variable)。 +**代码示例:** + +.. code-block:: python + + left = fluid.layers.data( + name='left', shape=[1], dtype='int32') + right = fluid.layers.data( + name='right', shape=[1], dtype='int32') + result = fluid.layers.logical_and(x=left, y=right) + @@ -4702,7 +4746,13 @@ logical_not算子 返回类型: 输出(Variable)。 +**代码示例:** +.. code-block:: python + + left = fluid.layers.data( + name='left', shape=[1], dtype='int32') + result = fluid.layers.logical_not(x=left) @@ -4736,7 +4786,15 @@ logical_or算子 +**代码示例:** + +.. code-block:: python + left = fluid.layers.data( + name='left', shape=[1], dtype='int32') + right = fluid.layers.data( + name='right', shape=[1], dtype='int32') + result = fluid.layers.logical_or(x=left, y=right) @@ -4769,7 +4827,15 @@ logical_xor算子 +**代码示例:** + +.. code-block:: python + left = fluid.layers.data( + name='left', shape=[1], dtype='int32') + right = fluid.layers.data( + name='right', shape=[1], dtype='int32') + result = fluid.layers.logical_xor(x=left, y=right) @@ -5772,7 +5838,12 @@ pow 返回类型: 输出(Variable) +**代码示例:** + +.. code-block:: python + x = fluid.layers.data(name="x", shape=[3,10,32,32], dtype="float32") + y = fluid.layers.pow(x, factor=2.0) @@ -6199,7 +6270,12 @@ relu6激活算子(Relu6 Activation Operator) 返回类型: 输出(Variable) +**代码示例:** + +.. code-block:: python + x = fluid.layers.data(name="x", shape=[3,10,32,32], dtype="float32") + y = fluid.layers.relu6(x, threshold=6.0) @@ -6212,10 +6288,12 @@ relu6激活算子(Relu6 Activation Operator) reshape ------------------------------- +.. py:function:: paddle.fluid.layers.reshape(x, shape, actual_shape=None, act=None, inplace=False, name=None) + 保持输入张量数据不变的情况下,改变张量的形状。 -目标形状可由 ``shape`` 或 ``actual_shape`` 给出。``shape``是一个整数列表,而 ``actual_shape``是一个张量变量。 -当两个属性同时被指定时,``actual_shape``的优先级高于 ``shape``,但在编译时仍然应该正确地设置shape以保证形状推断。 +目标形状可由 ``shape`` 或 ``actual_shape`` 给出。``shape`` 是一个整数列表,而 ``actual_shape`` 是一个张量变量。 +当两个属性同时被指定时,``actual_shape`` 的优先级高于 ``shape`` ,但在编译时仍然应该正确地设置 ``shape`` 以保证形状推断。 在指定目标shape时存在一些技巧: @@ -6238,10 +6316,10 @@ reshape - **shape** (list) - 新的形状。新形状最多只能有一个维度为-1。 - **actual_shape** (variable) - 一个可选的输入。如果提供,则根据 ``actual_shape`` 进行 reshape,而不是指定 ``shape`` 。也就是说,actual_shape具有比shape更高的优先级。 - **act** (str) - 对reshpe后的tensor变量执行非线性激活 - - **inplace** (bool) - 如果在多个操作符中使用x,则 ``inplace``必须设置为False。如果该标志设置为True,则重用输入x进行reshape,这将改变张量变量x的形状,并可能在多个操作符中使用x时造成错误。如果为False,则保留形状x,并创建一个新的输出张量变量,该张量变量的数据是从输入x复制的,但经过了重构。 + - **inplace** (bool) - 如果在多个操作符中使用x,则 ``inplace`` 必须设置为False。如果该标志设置为True,则重用输入x进行reshape,这将改变张量变量x的形状,并可能在多个操作符中使用x时造成错误。如果为False,则保留形状x,并创建一个新的输出张量变量,该张量变量的数据是从输入x复制的,但经过了重构。 - **name** (str) - 可选变量,此层的名称 -返回:如果 ``act`` 为 ``None``,返回reshape后的tensor变量。如果 ``inplace``为 ``False``,将返回一个新的Tensor变量,否则,将改变x自身。如果 ``act``不是 ``None``,则返回激活的张量变量。 +返回:如果 ``act`` 为 ``None``,返回reshape后的tensor变量。如果 ``inplace`` 为 ``False`` ,将返回一个新的Tensor变量,否则,将改变x自身。如果 ``act`` 不是 ``None`` ,则返回激活的张量变量。 抛出异常:``TypeError`` - 如果 actual_shape 既不是变量也不是None @@ -6270,6 +6348,8 @@ resize_bilinear .. py:function:: paddle.fluid.layers.resize_bilinear(input, out_shape=None, scale=None, name=None) +根据指定的out_shape执行双线性插值调整输入大小,输出形状按优先级由actual_shape、out_shape和scale指定。 + 双线性插值是对线性插值的扩展,即二维变量方向上(如h方向和w方向)插值。关键思想是先在一个方向上执行线性插值,然后再在另一个方向上执行线性插值。 `详情请参阅维基百科 https://en.wikipedia.org/wiki/Bilinear_interpolation `_ @@ -6279,11 +6359,16 @@ resize_bilinear - **out_shape** (Variable) - 一维张量,包含两个数。第一个数是高度,第二个数是宽度。 - **scale** (float|None) - 用于输入高度或宽度的乘数因子。out_shape和scale至少要设置一个。out_shape的优先级高于scale。默认值:None。 - **name** (str|None) - 输出变量名。 - + - **actual_shape** (Variable) - 可选输入,用于动态指定输出形状。如果指定actual_shape,图像将根据给定的形状调整大小,而不是根据指定形状的 :code:`out_shape` 和 :code:`scale` 进行调整。也就是说, :code:`actual_shape` 具有最高的优先级。如果希望动态指定输出形状,建议使用 :code:`actual_shape` 而不是 :code:`out_shape` 。在使用actual_shape指定输出形状时,还需要设置out_shape和scale之一,否则在图形构建阶段会出现错误。默认值:None + 返回: 输出的维度是(N x C x out_h x out_w) +**代码示例:** + +.. code-block:: python + out = fluid.layers.resize_bilinear(input, out_shape=[12, 12]) @@ -7757,7 +7842,12 @@ SoftRelu 激活函数 - **threshold** (FLOAT|40.0) - SoftRelu的阈值 - **name** (str|None) - 该层的名称(可选)。如果设置为None,该层将被自动命名 +**代码示例:** +.. code-block:: python + + x = fluid.layers.data(name=”x”, shape=[2,3,16,16], dtype=”float32”) + y = fluid.layers.soft_relu(x, threshold=20.0) @@ -8111,7 +8201,12 @@ STanh 激活算子(STanh Activation Operator.) 返回类型: 输出(Variable) +**代码示例:** + +.. code-block:: python + x = fluid.layers.data(name="x", shape=[3,10,32,32], dtype="float32") + y = fluid.layers.stanh(x, scale_a=0.67, scale_b=1.72) @@ -8168,7 +8263,12 @@ Swish 激活函数 返回类型: output(Variable) +**代码示例:** + +.. code-block:: python + x = fluid.layers.data(name="x", shape=[3,10,32,32], dtype="float32") + y = fluid.layers.swish(x, beta=2.0)