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。