diff --git a/python/paddle/fluid/layers/control_flow.py b/python/paddle/fluid/layers/control_flow.py index 3a06b84d111c4f332fdaa491bb7bc60e1e048d08..fff65f9f46e7b6c779279ea98f0ed82c0ecf9bd0 100755 --- a/python/paddle/fluid/layers/control_flow.py +++ b/python/paddle/fluid/layers/control_flow.py @@ -1133,30 +1133,14 @@ def while_loop(cond, body, loop_vars, is_test=False, name=None): refer to :ref:`api_guide_Name`. Default is None. Returns: - A list or tuple of tensors or LoDTensorArrays which returned by ``body`` . - - Returen type: - list(Variable)|tuple(Variable). - - Raises: - TypeError: If the type of ``cond`` is not callable. - TypeError: If the type of ``body`` is not callable. - TypeError: If the type of ``loop_vars`` is not list or tuple. - TypeError: If the type of ``cond`` returns is not Variable. - TypeError: If the type of ``cond`` returns is not a boolean variable. - TypeError: If the shape of ``cond`` returns is not equals 1. - ValueError: If the ``var_loops`` is empty. - ValueError: If the length or type of ``body`` returns is not same as ``loop_vars``. + A list or tuple of Tensors or LoDTensorArrays which returned by ``body`` . Examples: .. code-block:: python - import paddle.fluid as fluid - import paddle.fluid.layers as layers import paddle paddle.enable_static() - def cond(i, ten): return i < ten @@ -1164,14 +1148,14 @@ def while_loop(cond, body, loop_vars, is_test=False, name=None): i = i + 1 return [i, ten] - main_program = fluid.default_main_program() - startup_program = fluid.default_startup_program() - with fluid.program_guard(main_program, startup_program): - i = layers.fill_constant(shape=[1], dtype='int64', value=0) # loop counter - ten = layers.fill_constant(shape=[1], dtype='int64', value=10) # loop length - i, ten = layers.while_loop(cond, body, [i, ten]) + main_program = paddle.static.default_main_program() + startup_program = paddle.static.default_startup_program() + with paddle.static.program_guard(main_program, startup_program): + i = paddle.full(shape=[1], fill_value=0, dtype='int64') # loop counter + ten = paddle.full(shape=[1], fill_value=10, dtype='int64') # loop length + i, ten = paddle.static.nn.while_loop(cond, body, [i, ten]) - exe = fluid.Executor(fluid.CPUPlace()) + exe = paddle.static.Executor(paddle.CPUPlace()) res = exe.run(main_program, feed={}, fetch_list=[i]) print(res) # [array([10])] """