From 50ad9046c9a440564d104eaa354eb9df83a35678 Mon Sep 17 00:00:00 2001
From: xiaoting <31891223+tink2123@users.noreply.github.com>
Date: Thu, 9 May 2019 12:43:25 +0800
Subject: [PATCH] add import, test=develop (#17229)

---
 paddle/fluid/API.spec                         |  8 +--
 python/paddle/fluid/initializer.py            |  6 ++
 python/paddle/fluid/layers/detection.py       |  3 +-
 .../fluid/layers/learning_rate_scheduler.py   | 68 +++++++++++++++----
 4 files changed, 65 insertions(+), 20 deletions(-)

diff --git a/paddle/fluid/API.spec b/paddle/fluid/API.spec
index 0ac70dd3264..bb6addf226f 100644
--- a/paddle/fluid/API.spec
+++ b/paddle/fluid/API.spec
@@ -351,7 +351,7 @@ paddle.fluid.layers.iou_similarity (ArgSpec(args=['x', 'y', 'name'], varargs=Non
 paddle.fluid.layers.box_coder (ArgSpec(args=['prior_box', 'prior_box_var', 'target_box', 'code_type', 'box_normalized', 'name', 'axis'], varargs=None, keywords=None, defaults=('encode_center_size', True, None, 0)), ('document', '032d0f4b7d8f6235ee5d91e473344f0e'))
 paddle.fluid.layers.polygon_box_transform (ArgSpec(args=['input', 'name'], varargs=None, keywords=None, defaults=(None,)), ('document', '0e5ac2507723a0b5adec473f9556799b'))
 paddle.fluid.layers.yolov3_loss (ArgSpec(args=['x', 'gt_box', 'gt_label', 'anchors', 'anchor_mask', 'class_num', 'ignore_thresh', 'downsample_ratio', 'gt_score', 'use_label_smooth', 'name'], varargs=None, keywords=None, defaults=(None, True, None)), ('document', 'eb62b1ff7cc981f3483a62321a491f2e'))
-paddle.fluid.layers.yolo_box (ArgSpec(args=['x', 'img_size', 'anchors', 'class_num', 'conf_thresh', 'downsample_ratio', 'name'], varargs=None, keywords=None, defaults=(None,)), ('document', '5566169a5ab993d177792c023c7fb340'))
+paddle.fluid.layers.yolo_box (ArgSpec(args=['x', 'img_size', 'anchors', 'class_num', 'conf_thresh', 'downsample_ratio', 'name'], varargs=None, keywords=None, defaults=(None,)), ('document', 'f332fb8c5bb581bd1a6b5be450a99990'))
 paddle.fluid.layers.box_clip (ArgSpec(args=['input', 'im_info', 'name'], varargs=None, keywords=None, defaults=(None,)), ('document', '04384378ff00a42ade8fabd52e27cbc5'))
 paddle.fluid.layers.multiclass_nms (ArgSpec(args=['bboxes', 'scores', 'score_threshold', 'nms_top_k', 'keep_top_k', 'nms_threshold', 'normalized', 'nms_eta', 'background_label', 'name'], varargs=None, keywords=None, defaults=(0.3, True, 1.0, 0, None)), ('document', 'ca7d1107b6c5d2d6d8221039a220fde0'))
 paddle.fluid.layers.distribute_fpn_proposals (ArgSpec(args=['fpn_rois', 'min_level', 'max_level', 'refer_level', 'refer_scale', 'name'], varargs=None, keywords=None, defaults=(None,)), ('document', '7bb011ec26bace2bc23235aa4a17647d'))
@@ -361,9 +361,9 @@ paddle.fluid.layers.auc (ArgSpec(args=['input', 'label', 'curve', 'num_threshold
 paddle.fluid.layers.exponential_decay (ArgSpec(args=['learning_rate', 'decay_steps', 'decay_rate', 'staircase'], varargs=None, keywords=None, defaults=(False,)), ('document', '98a5050bee8522fcea81aa795adaba51'))
 paddle.fluid.layers.natural_exp_decay (ArgSpec(args=['learning_rate', 'decay_steps', 'decay_rate', 'staircase'], varargs=None, keywords=None, defaults=(False,)), ('document', '676a7bc2a218691db50bca233903d21e'))
 paddle.fluid.layers.inverse_time_decay (ArgSpec(args=['learning_rate', 'decay_steps', 'decay_rate', 'staircase'], varargs=None, keywords=None, defaults=(False,)), ('document', 'd07e767d59c4a5e6c930f3e6756d3f82'))
-paddle.fluid.layers.polynomial_decay (ArgSpec(args=['learning_rate', 'decay_steps', 'end_learning_rate', 'power', 'cycle'], varargs=None, keywords=None, defaults=(0.0001, 1.0, False)), ('document', '882634f420f626642f0874481263da40'))
-paddle.fluid.layers.piecewise_decay (ArgSpec(args=['boundaries', 'values'], varargs=None, keywords=None, defaults=None), ('document', 'c717d9d1d78a53c809d01b8bc56f3cae'))
-paddle.fluid.layers.noam_decay (ArgSpec(args=['d_model', 'warmup_steps'], varargs=None, keywords=None, defaults=None), ('document', 'd9a95746353fd574be36dc28d8726c28'))
+paddle.fluid.layers.polynomial_decay (ArgSpec(args=['learning_rate', 'decay_steps', 'end_learning_rate', 'power', 'cycle'], varargs=None, keywords=None, defaults=(0.0001, 1.0, False)), ('document', 'a343254c36c2e89512cd8cd8a1960ead'))
+paddle.fluid.layers.piecewise_decay (ArgSpec(args=['boundaries', 'values'], varargs=None, keywords=None, defaults=None), ('document', 'd9f654117542c6b702963dda107a247f'))
+paddle.fluid.layers.noam_decay (ArgSpec(args=['d_model', 'warmup_steps'], varargs=None, keywords=None, defaults=None), ('document', 'f96805b1a64f9a12f4627497e5fcb920'))
 paddle.fluid.layers.cosine_decay (ArgSpec(args=['learning_rate', 'step_each_epoch', 'epochs'], varargs=None, keywords=None, defaults=None), ('document', 'f8b2727bccf0f368c997d7cf05847e49'))
 paddle.fluid.layers.linear_lr_warmup (ArgSpec(args=['learning_rate', 'warmup_steps', 'start_lr', 'end_lr'], varargs=None, keywords=None, defaults=None), ('document', '2ef3f5ca5cd71ea4217c418e5a7a0565'))
 paddle.fluid.contrib.InitState.__init__ (ArgSpec(args=['self', 'init', 'shape', 'value', 'init_boot', 'need_reorder', 'dtype'], varargs=None, keywords=None, defaults=(None, None, 0.0, None, False, 'float32')), ('document', '6adf97f83acf6453d4a6a4b1070f3754'))
diff --git a/python/paddle/fluid/initializer.py b/python/paddle/fluid/initializer.py
index 86596bd9c8f..58819efea04 100644
--- a/python/paddle/fluid/initializer.py
+++ b/python/paddle/fluid/initializer.py
@@ -205,6 +205,8 @@ class UniformInitializer(Initializer):
     Examples:
         .. code-block:: python
 
+            import paddle.fluid as fluid
+            x = fluid.layers.data(name='x', shape=[1], dtype='float32')
             fc = fluid.layers.fc(input=x, size=10,
                 param_attr=fluid.initializer.Uniform(low=-0.5, high=0.5))
     """
@@ -366,6 +368,8 @@ class TruncatedNormalInitializer(Initializer):
     Examples:
         .. code-block:: python
 
+            import paddle.fluid as fluid
+            x = fluid.layers.data(name='x', shape=[1], dtype='float32')
             fc = fluid.layers.fc(input=x, size=10,
                 param_attr=fluid.initializer.TruncatedNormal(loc=0.0, scale=2.0))
     """
@@ -471,6 +475,8 @@ class XavierInitializer(Initializer):
     Examples:
         .. code-block:: python
 
+            import paddle.fluid as fluid
+            queries = fluid.layers.data(name='x', shape=[1], dtype='float32')
             fc = fluid.layers.fc(
                 input=queries, size=10,
                 param_attr=fluid.initializer.Xavier(uniform=False))
diff --git a/python/paddle/fluid/layers/detection.py b/python/paddle/fluid/layers/detection.py
index 0cc7e601498..e98e48fc59f 100644
--- a/python/paddle/fluid/layers/detection.py
+++ b/python/paddle/fluid/layers/detection.py
@@ -666,9 +666,10 @@ def yolo_box(x,
 
     .. code-block:: python
 
+        import paddle.fluid as fluid
         x = fluid.layers.data(name='x', shape=[255, 13, 13], dtype='float32')
         anchors = [10, 13, 16, 30, 33, 23]
-        loss = fluid.layers.yolo_box(x=x, class_num=80, anchors=anchors, 
+        loss = fluid.layers.yolo_box(x=x, img_size=608, class_num=80, anchors=anchors, 
                                         conf_thresh=0.01, downsample_ratio=32)
     """
     helper = LayerHelper('yolo_box', **locals())
diff --git a/python/paddle/fluid/layers/learning_rate_scheduler.py b/python/paddle/fluid/layers/learning_rate_scheduler.py
index a67c8058f2c..a9fdb10ae01 100644
--- a/python/paddle/fluid/layers/learning_rate_scheduler.py
+++ b/python/paddle/fluid/layers/learning_rate_scheduler.py
@@ -52,10 +52,17 @@ def noam_decay(d_model, warmup_steps):
     """
     Noam decay method. The numpy implementation of noam decay as follows.
 
-    >>> import numpy as np
-    >>> lr_value = np.power(d_model, -0.5) * np.min([
-    >>>                         np.power(current_steps, -0.5),
-    >>>                         np.power(warmup_steps, -1.5) * current_steps])
+    .. code-block:: python
+      
+      import numpy as np
+      # set hyper parameters
+      d_model = 2
+      current_steps = 20
+      warmup_steps = 200
+      # compute
+      lr_value = np.power(d_model, -0.5) * np.min([
+                              np.power(current_steps, -0.5),
+                              np.power(warmup_steps, -1.5) * current_steps])
 
     Please reference `attention is all you need
     <https://arxiv.org/pdf/1706.03762.pdf>`_.
@@ -67,6 +74,15 @@ def noam_decay(d_model, warmup_steps):
 
     Returns:
         The decayed learning rate.
+    Examples:
+        .. code-block:: python
+
+          import padde.fluid as fluid
+          warmup_steps = 100
+          learning_rate = 0.01
+          lr = fluid.layers.learning_rate_scheduler.noam_decay(
+                         1/(warmup_steps *(learning_rate ** 2)),
+                         warmup_steps)
     """
     with default_main_program()._lr_schedule_guard():
         if imperative_base.enabled():
@@ -228,7 +244,7 @@ def polynomial_decay(learning_rate,
     """
     Applies polynomial decay to the initial learning rate.
 
-    .. code-block:: python
+    .. code-block:: text
 
      if cycle:
        decay_steps = decay_steps * ceil(global_step / decay_steps)
@@ -247,6 +263,17 @@ def polynomial_decay(learning_rate,
 
     Returns:
         Variable: The decayed learning rate
+
+    Examples:
+        .. code-block:: python
+
+          import paddle.fluid as fluid
+          start_lr = 0.01
+          total_step = 5000
+          end_lr = 0
+          lr = fluid.layers.polynomial_decay(
+              start_lr, total_step, end_lr, power=1)
+
     """
     with default_main_program()._lr_schedule_guard():
         if imperative_base.enabled():
@@ -281,18 +308,18 @@ def polynomial_decay(learning_rate,
 def piecewise_decay(boundaries, values):
     """Applies piecewise decay to the initial learning rate.
 
-      The algorithm can be described as the code below.
+    The algorithm can be described as the code below.
 
-      .. code-block:: python
+    .. code-block:: text
 
-        boundaries = [10000, 20000]
-        values = [1.0, 0.5, 0.1]
-        if step < 10000:
-            learning_rate = 1.0
-        elif 10000 <= step < 20000:
-            learning_rate = 0.5
-        else:
-            learning_rate = 0.1
+      boundaries = [10000, 20000]
+      values = [1.0, 0.5, 0.1]
+      if step < 10000:
+          learning_rate = 1.0
+      elif 10000 <= step < 20000:
+          learning_rate = 0.5
+      else:
+          learning_rate = 0.1
     Args:
         boundaries: A list of steps numbers.
         values: A list of learning rate values that will be picked during
@@ -301,6 +328,17 @@ def piecewise_decay(boundaries, values):
     Returns:
         The decayed learning rate.
 
+    Examples:
+        .. code-block:: python
+
+          import paddle.fluid as fluid
+          boundaries = [10000, 20000]
+          values = [1.0, 0.5, 0.1]
+          optimizer = fluid.optimizer.Momentum(
+              momentum=0.9,
+              learning_rate=fluid.layers.piecewise_decay(boundaries=boundaries, values=values),
+              regularization=fluid.regularizer.L2Decay(1e-4))
+
 
     """
     with default_main_program()._lr_schedule_guard():
-- 
GitLab