while_loop

    该API用于实现类似while的循环控制功能,只要循环条件 cond 的返回值为True,while_loop 则会循环执行循环体 body ,直到 cond 的返回值为False。

    注意:

    body 中定义的局部变量无法使用 Executorfetch_list 来获取的,变量需在 body 外定义并将其置于 loop_vars 中进行循环更新后才可通过 fetch_list 获取。

    参数:

    • cond (callable) - 返回boolean类型张量的可调用函数,用以判断循环是否继续执行。 cond 的参数和 相对应。

    • body (callable) - 循环执行的结构体。其返回一个包含tensor或LoDTensorArray的列表或元组,且这些tensor或LoDTensorArray的长度,结构,类型和 loop_vars 中的相同。 且``body`` 的参数与 loop_vars 相对应。

    • name (str,可选) - 具体用法请参见 。一般无需设置,默认值为None。

    返回:循环迭代之后 body 的返回值,和 loop_vars 具有相同的结构。

    返回类型:list|tuple

    异常抛出:

    • TypeError:若 cond 不是可调用的。

    • TypeError:若 cond 返回值不是变量。

    • TypeError:若 cond 返回值不是boolean类型的variable。

    • TypeError:若 cond 返回值的shape不等于1。

    • ValueError:若 cond 返回值的长度和类型和 loop_vars 不同。