IfElse

    该类用于实现IfElse分支控制功能, IfElse包含两个Block,true_block,false_block,IfElse会将满足True或False条件的数据分别放入不同的block运行。

    cond是一个shape为[N, 1]、数据类型为bool的2-D tensor,表示输入数据对应部分的执行条件。

    注解

    如果参数 cond 的形状为[1],强烈建议您使用新的OP 而不是 IfElse。 OP cond 的使用方式更简单,并且调用该OP所用的代码更少且功能与 IfElse 一样。

    参数:

    • cond (Variable)- cond是一个shape为[N, 1]、数据类型为bool的2-D tensor,表示N个输入数据的对应的执行条件。数据类型为bool。

    返回:

    内部函数:

    • 通过调用对象中的 with ie.true_block() 函数构建block,将条件为true下的计算逻辑放入此block中。如果没有构建相应的block,则对应条件维度下的输入数据不做改变。

    • out = ie.input(x) 会将x中对应条件维度的数据获取出来放入到out中,支持block内部处理多个输入。

    • 对象内部有 __call__() 函数,即通过对 output = ie() 的调用,将条件分别为True,False的block内部所有的输出进行融合作为整体的输出,输出的类型为列表,列表中每个元素的类型为Variable。