From 87cf6fef491c1d2211e481c7f47069ce340a7bd0 Mon Sep 17 00:00:00 2001 From: jerrywgz Date: Mon, 3 Jun 2019 13:05:54 +0000 Subject: [PATCH 1/4] refine doc for prelu, test=develop --- python/paddle/fluid/layers/nn.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/python/paddle/fluid/layers/nn.py b/python/paddle/fluid/layers/nn.py index 0718235fc0d86f..3a5e808157c886 100644 --- a/python/paddle/fluid/layers/nn.py +++ b/python/paddle/fluid/layers/nn.py @@ -8817,14 +8817,19 @@ def prelu(x, mode, param_attr=None, name=None): .. math:: y = \max(0, x) + \\alpha * \min(0, x) + There are three modes for the activation: + + .. code-block:: text + + all: all elements share same alpha + channel: elements in same channel share same alpha + element: All element has the same alpha + Args: x (Variable): The input tensor. param_attr(ParamAttr|None): The parameter attribute for the learnable - weight (alpha). - mode (string): The mode for weight sharing. It supports all, channel - and element. all: all elements share same weight - channel:elements in a channel share same weight - element:each element has a weight + weight (alpha), it can be create by ParamAttr. + mode (string): The mode for weight sharing. name(str|None): A name for this layer(optional). If set None, the layer will be named automatically. @@ -8835,9 +8840,12 @@ def prelu(x, mode, param_attr=None, name=None): .. code-block:: python - x = fluid.layers.data(name="x", shape=[10,10], dtype="float32") + from paddle.fluid.param_attr import ParamAttr + x = fluid.layers.data(name="x", shape=[5,10,10], dtype="float32") mode = 'channel' - output = fluid.layers.prelu(x,mode) + output = fluid.layers.prelu( + x,mode,param_attr=ParamAttr(name='alpha')) + """ helper = LayerHelper('prelu', **locals()) if mode not in ['all', 'channel', 'element']: From 6eef5167c2eaa7d4ffda3940dacfd980af31fdc0 Mon Sep 17 00:00:00 2001 From: jerrywgz Date: Tue, 4 Jun 2019 05:58:07 +0000 Subject: [PATCH 2/4] add API.spec, test=develop --- paddle/fluid/API.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/fluid/API.spec b/paddle/fluid/API.spec index c745905aad89d8..d48fd6128237c8 100644 --- a/paddle/fluid/API.spec +++ b/paddle/fluid/API.spec @@ -170,7 +170,7 @@ paddle.fluid.layers.pow (ArgSpec(args=['x', 'factor', 'name'], varargs=None, key paddle.fluid.layers.stanh (ArgSpec(args=['x', 'scale_a', 'scale_b', 'name'], varargs=None, keywords=None, defaults=(0.6666666666666666, 1.7159, None)), ('document', '959936a477efc6c1447a9c8bf8ce94bb')) paddle.fluid.layers.hard_sigmoid (ArgSpec(args=['x', 'slope', 'offset', 'name'], varargs=None, keywords=None, defaults=(0.2, 0.5, None)), ('document', '607d79ca873bee40eed1c79a96611591')) paddle.fluid.layers.swish (ArgSpec(args=['x', 'beta', 'name'], varargs=None, keywords=None, defaults=(1.0, None)), ('document', 'ef745e55a48763ee7b46b21a81dc7e84')) -paddle.fluid.layers.prelu (ArgSpec(args=['x', 'mode', 'param_attr', 'name'], varargs=None, keywords=None, defaults=(None, None)), ('document', 'f6acef7ff7d887e49ff499fbb1dad4a9')) +paddle.fluid.layers.prelu (ArgSpec(args=['x', 'mode', 'param_attr', 'name'], varargs=None, keywords=None, defaults=(None, None)), ('document', 'e3ba1188359f4343650bea77831a9b74')) paddle.fluid.layers.brelu (ArgSpec(args=['x', 't_min', 't_max', 'name'], varargs=None, keywords=None, defaults=(0.0, 24.0, None)), ('document', '3db337c195e156e6ef2b8b4a57113600')) paddle.fluid.layers.leaky_relu (ArgSpec(args=['x', 'alpha', 'name'], varargs=None, keywords=None, defaults=(0.02, None)), ('document', 'f878486c82b576938151daad0de995a0')) paddle.fluid.layers.soft_relu (ArgSpec(args=['x', 'threshold', 'name'], varargs=None, keywords=None, defaults=(40.0, None)), ('document', '3490ed5c9835ae039a82979daf3918a4')) From 4981dbddb45e56604ca3050a61861e36204c2cd0 Mon Sep 17 00:00:00 2001 From: jerrywgz Date: Tue, 4 Jun 2019 08:03:12 +0000 Subject: [PATCH 3/4] refine code following comment, test=develop --- paddle/fluid/API.spec | 2 +- python/paddle/fluid/layers/nn.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/paddle/fluid/API.spec b/paddle/fluid/API.spec index d48fd6128237c8..611ad31800717a 100644 --- a/paddle/fluid/API.spec +++ b/paddle/fluid/API.spec @@ -170,7 +170,7 @@ paddle.fluid.layers.pow (ArgSpec(args=['x', 'factor', 'name'], varargs=None, key paddle.fluid.layers.stanh (ArgSpec(args=['x', 'scale_a', 'scale_b', 'name'], varargs=None, keywords=None, defaults=(0.6666666666666666, 1.7159, None)), ('document', '959936a477efc6c1447a9c8bf8ce94bb')) paddle.fluid.layers.hard_sigmoid (ArgSpec(args=['x', 'slope', 'offset', 'name'], varargs=None, keywords=None, defaults=(0.2, 0.5, None)), ('document', '607d79ca873bee40eed1c79a96611591')) paddle.fluid.layers.swish (ArgSpec(args=['x', 'beta', 'name'], varargs=None, keywords=None, defaults=(1.0, None)), ('document', 'ef745e55a48763ee7b46b21a81dc7e84')) -paddle.fluid.layers.prelu (ArgSpec(args=['x', 'mode', 'param_attr', 'name'], varargs=None, keywords=None, defaults=(None, None)), ('document', 'e3ba1188359f4343650bea77831a9b74')) +paddle.fluid.layers.prelu (ArgSpec(args=['x', 'mode', 'param_attr', 'name'], varargs=None, keywords=None, defaults=(None, None)), ('document', '42e0ef9bfdebedbd25d1649b174f32bb')) paddle.fluid.layers.brelu (ArgSpec(args=['x', 't_min', 't_max', 'name'], varargs=None, keywords=None, defaults=(0.0, 24.0, None)), ('document', '3db337c195e156e6ef2b8b4a57113600')) paddle.fluid.layers.leaky_relu (ArgSpec(args=['x', 'alpha', 'name'], varargs=None, keywords=None, defaults=(0.02, None)), ('document', 'f878486c82b576938151daad0de995a0')) paddle.fluid.layers.soft_relu (ArgSpec(args=['x', 'threshold', 'name'], varargs=None, keywords=None, defaults=(40.0, None)), ('document', '3490ed5c9835ae039a82979daf3918a4')) diff --git a/python/paddle/fluid/layers/nn.py b/python/paddle/fluid/layers/nn.py index 3a5e808157c886..750c2ee192930f 100644 --- a/python/paddle/fluid/layers/nn.py +++ b/python/paddle/fluid/layers/nn.py @@ -8821,15 +8821,15 @@ def prelu(x, mode, param_attr=None, name=None): .. code-block:: text - all: all elements share same alpha - channel: elements in same channel share same alpha - element: All element has the same alpha + all: All elements share same alpha. + channel: Elements in same channel share same alpha. + element: All elements do not share alpha. Each element has its own alpha. Args: x (Variable): The input tensor. + mode (string): The mode for weight sharing. param_attr(ParamAttr|None): The parameter attribute for the learnable weight (alpha), it can be create by ParamAttr. - mode (string): The mode for weight sharing. name(str|None): A name for this layer(optional). If set None, the layer will be named automatically. From 9e04f4ba37edaa7a108ff9402d77f271d0581c25 Mon Sep 17 00:00:00 2001 From: jerrywgz Date: Tue, 4 Jun 2019 08:14:23 +0000 Subject: [PATCH 4/4] add necessary import in example, test=develop --- paddle/fluid/API.spec | 2 +- python/paddle/fluid/layers/nn.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/paddle/fluid/API.spec b/paddle/fluid/API.spec index 611ad31800717a..d24cece682c4ee 100644 --- a/paddle/fluid/API.spec +++ b/paddle/fluid/API.spec @@ -170,7 +170,7 @@ paddle.fluid.layers.pow (ArgSpec(args=['x', 'factor', 'name'], varargs=None, key paddle.fluid.layers.stanh (ArgSpec(args=['x', 'scale_a', 'scale_b', 'name'], varargs=None, keywords=None, defaults=(0.6666666666666666, 1.7159, None)), ('document', '959936a477efc6c1447a9c8bf8ce94bb')) paddle.fluid.layers.hard_sigmoid (ArgSpec(args=['x', 'slope', 'offset', 'name'], varargs=None, keywords=None, defaults=(0.2, 0.5, None)), ('document', '607d79ca873bee40eed1c79a96611591')) paddle.fluid.layers.swish (ArgSpec(args=['x', 'beta', 'name'], varargs=None, keywords=None, defaults=(1.0, None)), ('document', 'ef745e55a48763ee7b46b21a81dc7e84')) -paddle.fluid.layers.prelu (ArgSpec(args=['x', 'mode', 'param_attr', 'name'], varargs=None, keywords=None, defaults=(None, None)), ('document', '42e0ef9bfdebedbd25d1649b174f32bb')) +paddle.fluid.layers.prelu (ArgSpec(args=['x', 'mode', 'param_attr', 'name'], varargs=None, keywords=None, defaults=(None, None)), ('document', '2da40e447716338affebfe058d05d9a9')) paddle.fluid.layers.brelu (ArgSpec(args=['x', 't_min', 't_max', 'name'], varargs=None, keywords=None, defaults=(0.0, 24.0, None)), ('document', '3db337c195e156e6ef2b8b4a57113600')) paddle.fluid.layers.leaky_relu (ArgSpec(args=['x', 'alpha', 'name'], varargs=None, keywords=None, defaults=(0.02, None)), ('document', 'f878486c82b576938151daad0de995a0')) paddle.fluid.layers.soft_relu (ArgSpec(args=['x', 'threshold', 'name'], varargs=None, keywords=None, defaults=(40.0, None)), ('document', '3490ed5c9835ae039a82979daf3918a4')) diff --git a/python/paddle/fluid/layers/nn.py b/python/paddle/fluid/layers/nn.py index 750c2ee192930f..24869063bbea46 100644 --- a/python/paddle/fluid/layers/nn.py +++ b/python/paddle/fluid/layers/nn.py @@ -8840,6 +8840,7 @@ def prelu(x, mode, param_attr=None, name=None): .. code-block:: python + import paddle.fluid as fluid from paddle.fluid.param_attr import ParamAttr x = fluid.layers.data(name="x", shape=[5,10,10], dtype="float32") mode = 'channel'