while_loop¶
- paddle.static.nn. while_loop ( cond, body, loop_vars, is_test=False, name=None ) ¶
该 API 用于实现类似 while 的循环控制功能,只要循环条件 cond
的返回值为 True,while_loop
则会循环执行循环体 body
,直到 cond
的返回值为 False。
注解
body
中定义的局部变量无法使用 Executor
的 fetch_list
来获取的,变量需在 body
外定义并将其置于 loop_vars
中进行循环更新后才可通过 fetch_list
获取。
参数¶
cond (callable) - 返回 boolean 类型 Tensor 的可调用函数,用以判断循环是否继续执行。
cond
的参数和loop_vars
相对应。body (callable) - 循环执行的结构体。其返回一个包含 tensor 或 DenseTensorArray 的列表或元组,且这些 tensor 或 DenseTensorArray 的长度,结构,类型和
loop_vars
中的相同。且``body`` 的参数与loop_vars
相对应。loop_vars (list|tuple) - 包含 tensor 或 DenseTensorArray 的列表或是元组,将其传入至
cond
和body
中,得到循环条件和输出值。is_test (bool,可选) - 用于表明是否在测试阶段执行,默认值为 False。
name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。
返回¶
list|tuple,循环迭代之后 body
的返回值,和 loop_vars
具有相同的结构。
示例代码¶
COPY-FROM: paddle.static.nn.while_loop