If¶
If - 25¶
Version¶
name: If (GitHub)
domain:
mainsince_version:
25function:
Falsesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 25.
Summary¶
If conditional
Attributes¶
else_branch - GRAPH (required) :
Graph to run if condition is false. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the then_branch.
then_branch - GRAPH (required) :
Graph to run if condition is true. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the else_branch.
Inputs¶
cond (heterogeneous) - B:
Condition for the if. The tensor must contain a single element.
Outputs¶
Between 1 and 2147483647 outputs.
outputs (variadic) - V:
Values that are live-out to the enclosing scope. The return values in the
then_branchandelse_branchmust be of the same data type. Thethen_branchandelse_branchmay produce tensors with the same element type and different shapes. If corresponding outputs from the then-branch and the else-branch have static shapes S1 and S2, then the shape of the corresponding output variable of the if-node (if present) must be compatible with both S1 and S2 as it represents the union of both possible shapes.For example, if in a model file, the first output ofthen_branchis typed float tensor with shape [2] and the first output ofelse_branchis another float tensor with shape [3], If’s first output should have (a) no shape set, or (b) a shape of rank 1 with neitherdim_valuenordim_paramset, or © a shape of rank 1 with a uniquedim_param. In contrast, the first output cannot have the shape [2] since [2] and [3] are not compatible.
Type Constraints¶
V in (
optional(seq(tensor(bfloat16))),optional(seq(tensor(bool))),optional(seq(tensor(complex128))),optional(seq(tensor(complex64))),optional(seq(tensor(double))),optional(seq(tensor(float))),optional(seq(tensor(float16))),optional(seq(tensor(int16))),optional(seq(tensor(int32))),optional(seq(tensor(int64))),optional(seq(tensor(int8))),optional(seq(tensor(string))),optional(seq(tensor(uint16))),optional(seq(tensor(uint32))),optional(seq(tensor(uint64))),optional(seq(tensor(uint8))),optional(tensor(bfloat16)),optional(tensor(bool)),optional(tensor(complex128)),optional(tensor(complex64)),optional(tensor(double)),optional(tensor(float)),optional(tensor(float16)),optional(tensor(float4e2m1)),optional(tensor(float8e4m3fn)),optional(tensor(float8e4m3fnuz)),optional(tensor(float8e5m2)),optional(tensor(float8e5m2fnuz)),optional(tensor(float8e8m0)),optional(tensor(int16)),optional(tensor(int2)),optional(tensor(int32)),optional(tensor(int4)),optional(tensor(int64)),optional(tensor(int8)),optional(tensor(string)),optional(tensor(uint16)),optional(tensor(uint2)),optional(tensor(uint32)),optional(tensor(uint4)),optional(tensor(uint64)),optional(tensor(uint8)),seq(tensor(bfloat16)),seq(tensor(bool)),seq(tensor(complex128)),seq(tensor(complex64)),seq(tensor(double)),seq(tensor(float)),seq(tensor(float16)),seq(tensor(float4e2m1)),seq(tensor(float8e4m3fn)),seq(tensor(float8e4m3fnuz)),seq(tensor(float8e5m2)),seq(tensor(float8e5m2fnuz)),seq(tensor(float8e8m0)),seq(tensor(int16)),seq(tensor(int2)),seq(tensor(int32)),seq(tensor(int4)),seq(tensor(int64)),seq(tensor(int8)),seq(tensor(string)),seq(tensor(uint16)),seq(tensor(uint2)),seq(tensor(uint32)),seq(tensor(uint4)),seq(tensor(uint64)),seq(tensor(uint8)),tensor(bfloat16),tensor(bool),tensor(complex128),tensor(complex64),tensor(double),tensor(float),tensor(float16),tensor(float4e2m1),tensor(float8e4m3fn),tensor(float8e4m3fnuz),tensor(float8e5m2),tensor(float8e5m2fnuz),tensor(float8e8m0),tensor(int16),tensor(int2),tensor(int32),tensor(int4),tensor(int64),tensor(int8),tensor(string),tensor(uint16),tensor(uint2),tensor(uint32),tensor(uint4),tensor(uint64),tensor(uint8)):All Tensor, Sequence(Tensor), Optional(Tensor), and Optional(Sequence(Tensor)) types up to IRv13.
B in (
tensor(bool)):Only bool
If - 24¶
Version¶
name: If (GitHub)
domain:
mainsince_version:
24function:
Falsesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 24.
Summary¶
If conditional
Attributes¶
else_branch - GRAPH (required) :
Graph to run if condition is false. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the then_branch.
then_branch - GRAPH (required) :
Graph to run if condition is true. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the else_branch.
Inputs¶
cond (heterogeneous) - B:
Condition for the if. The tensor must contain a single element.
Outputs¶
Between 1 and 2147483647 outputs.
outputs (variadic) - V:
Values that are live-out to the enclosing scope. The return values in the
then_branchandelse_branchmust be of the same data type. Thethen_branchandelse_branchmay produce tensors with the same element type and different shapes. If corresponding outputs from the then-branch and the else-branch have static shapes S1 and S2, then the shape of the corresponding output variable of the if-node (if present) must be compatible with both S1 and S2 as it represents the union of both possible shapes.For example, if in a model file, the first output ofthen_branchis typed float tensor with shape [2] and the first output ofelse_branchis another float tensor with shape [3], If’s first output should have (a) no shape set, or (b) a shape of rank 1 with neitherdim_valuenordim_paramset, or © a shape of rank 1 with a uniquedim_param. In contrast, the first output cannot have the shape [2] since [2] and [3] are not compatible.
Type Constraints¶
V in (
optional(seq(tensor(bfloat16))),optional(seq(tensor(bool))),optional(seq(tensor(complex128))),optional(seq(tensor(complex64))),optional(seq(tensor(double))),optional(seq(tensor(float))),optional(seq(tensor(float16))),optional(seq(tensor(int16))),optional(seq(tensor(int32))),optional(seq(tensor(int64))),optional(seq(tensor(int8))),optional(seq(tensor(string))),optional(seq(tensor(uint16))),optional(seq(tensor(uint32))),optional(seq(tensor(uint64))),optional(seq(tensor(uint8))),optional(tensor(bfloat16)),optional(tensor(bool)),optional(tensor(complex128)),optional(tensor(complex64)),optional(tensor(double)),optional(tensor(float)),optional(tensor(float16)),optional(tensor(float4e2m1)),optional(tensor(float8e4m3fn)),optional(tensor(float8e4m3fnuz)),optional(tensor(float8e5m2)),optional(tensor(float8e5m2fnuz)),optional(tensor(float8e8m0)),optional(tensor(int16)),optional(tensor(int32)),optional(tensor(int4)),optional(tensor(int64)),optional(tensor(int8)),optional(tensor(string)),optional(tensor(uint16)),optional(tensor(uint32)),optional(tensor(uint4)),optional(tensor(uint64)),optional(tensor(uint8)),seq(tensor(bfloat16)),seq(tensor(bool)),seq(tensor(complex128)),seq(tensor(complex64)),seq(tensor(double)),seq(tensor(float)),seq(tensor(float16)),seq(tensor(float4e2m1)),seq(tensor(float8e4m3fn)),seq(tensor(float8e4m3fnuz)),seq(tensor(float8e5m2)),seq(tensor(float8e5m2fnuz)),seq(tensor(float8e8m0)),seq(tensor(int16)),seq(tensor(int32)),seq(tensor(int4)),seq(tensor(int64)),seq(tensor(int8)),seq(tensor(string)),seq(tensor(uint16)),seq(tensor(uint32)),seq(tensor(uint4)),seq(tensor(uint64)),seq(tensor(uint8)),tensor(bfloat16),tensor(bool),tensor(complex128),tensor(complex64),tensor(double),tensor(float),tensor(float16),tensor(float4e2m1),tensor(float8e4m3fn),tensor(float8e4m3fnuz),tensor(float8e5m2),tensor(float8e5m2fnuz),tensor(float8e8m0),tensor(int16),tensor(int32),tensor(int4),tensor(int64),tensor(int8),tensor(string),tensor(uint16),tensor(uint32),tensor(uint4),tensor(uint64),tensor(uint8)):All Tensor, Sequence(Tensor), Optional(Tensor), and Optional(Sequence(Tensor)) types up to IRv11.
B in (
tensor(bool)):Only bool
If - 23¶
Version¶
name: If (GitHub)
domain:
mainsince_version:
23function:
Falsesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 23.
Summary¶
If conditional
Attributes¶
else_branch - GRAPH (required) :
Graph to run if condition is false. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the then_branch.
then_branch - GRAPH (required) :
Graph to run if condition is true. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the else_branch.
Inputs¶
cond (heterogeneous) - B:
Condition for the if. The tensor must contain a single element.
Outputs¶
Between 1 and 2147483647 outputs.
outputs (variadic) - V:
Values that are live-out to the enclosing scope. The return values in the
then_branchandelse_branchmust be of the same data type. Thethen_branchandelse_branchmay produce tensors with the same element type and different shapes. If corresponding outputs from the then-branch and the else-branch have static shapes S1 and S2, then the shape of the corresponding output variable of the if-node (if present) must be compatible with both S1 and S2 as it represents the union of both possible shapes.For example, if in a model file, the first output ofthen_branchis typed float tensor with shape [2] and the first output ofelse_branchis another float tensor with shape [3], If’s first output should have (a) no shape set, or (b) a shape of rank 1 with neitherdim_valuenordim_paramset, or © a shape of rank 1 with a uniquedim_param. In contrast, the first output cannot have the shape [2] since [2] and [3] are not compatible.
Type Constraints¶
V in (
optional(seq(tensor(bfloat16))),optional(seq(tensor(bool))),optional(seq(tensor(complex128))),optional(seq(tensor(complex64))),optional(seq(tensor(double))),optional(seq(tensor(float))),optional(seq(tensor(float16))),optional(seq(tensor(int16))),optional(seq(tensor(int32))),optional(seq(tensor(int64))),optional(seq(tensor(int8))),optional(seq(tensor(string))),optional(seq(tensor(uint16))),optional(seq(tensor(uint32))),optional(seq(tensor(uint64))),optional(seq(tensor(uint8))),optional(tensor(bfloat16)),optional(tensor(bool)),optional(tensor(complex128)),optional(tensor(complex64)),optional(tensor(double)),optional(tensor(float)),optional(tensor(float16)),optional(tensor(float4e2m1)),optional(tensor(float8e4m3fn)),optional(tensor(float8e4m3fnuz)),optional(tensor(float8e5m2)),optional(tensor(float8e5m2fnuz)),optional(tensor(int16)),optional(tensor(int32)),optional(tensor(int4)),optional(tensor(int64)),optional(tensor(int8)),optional(tensor(string)),optional(tensor(uint16)),optional(tensor(uint32)),optional(tensor(uint4)),optional(tensor(uint64)),optional(tensor(uint8)),seq(tensor(bfloat16)),seq(tensor(bool)),seq(tensor(complex128)),seq(tensor(complex64)),seq(tensor(double)),seq(tensor(float)),seq(tensor(float16)),seq(tensor(float4e2m1)),seq(tensor(float8e4m3fn)),seq(tensor(float8e4m3fnuz)),seq(tensor(float8e5m2)),seq(tensor(float8e5m2fnuz)),seq(tensor(int16)),seq(tensor(int32)),seq(tensor(int4)),seq(tensor(int64)),seq(tensor(int8)),seq(tensor(string)),seq(tensor(uint16)),seq(tensor(uint32)),seq(tensor(uint4)),seq(tensor(uint64)),seq(tensor(uint8)),tensor(bfloat16),tensor(bool),tensor(complex128),tensor(complex64),tensor(double),tensor(float),tensor(float16),tensor(float4e2m1),tensor(float8e4m3fn),tensor(float8e4m3fnuz),tensor(float8e5m2),tensor(float8e5m2fnuz),tensor(int16),tensor(int32),tensor(int4),tensor(int64),tensor(int8),tensor(string),tensor(uint16),tensor(uint32),tensor(uint4),tensor(uint64),tensor(uint8)):All Tensor, Sequence(Tensor), Optional(Tensor), and Optional(Sequence(Tensor)) types up to IRv11.
B in (
tensor(bool)):Only bool
If - 21¶
Version¶
name: If (GitHub)
domain:
mainsince_version:
21function:
Falsesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 21.
Summary¶
If conditional
Attributes¶
else_branch - GRAPH (required) :
Graph to run if condition is false. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the then_branch.
then_branch - GRAPH (required) :
Graph to run if condition is true. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the else_branch.
Inputs¶
cond (heterogeneous) - B:
Condition for the if. The tensor must contain a single element.
Outputs¶
Between 1 and 2147483647 outputs.
outputs (variadic) - V:
Values that are live-out to the enclosing scope. The return values in the
then_branchandelse_branchmust be of the same data type. Thethen_branchandelse_branchmay produce tensors with the same element type and different shapes. If corresponding outputs from the then-branch and the else-branch have static shapes S1 and S2, then the shape of the corresponding output variable of the if-node (if present) must be compatible with both S1 and S2 as it represents the union of both possible shapes.For example, if in a model file, the first output ofthen_branchis typed float tensor with shape [2] and the first output ofelse_branchis another float tensor with shape [3], If’s first output should have (a) no shape set, or (b) a shape of rank 1 with neitherdim_valuenordim_paramset, or © a shape of rank 1 with a uniquedim_param. In contrast, the first output cannot have the shape [2] since [2] and [3] are not compatible.
Type Constraints¶
V in (
optional(seq(tensor(bfloat16))),optional(seq(tensor(bool))),optional(seq(tensor(complex128))),optional(seq(tensor(complex64))),optional(seq(tensor(double))),optional(seq(tensor(float))),optional(seq(tensor(float16))),optional(seq(tensor(int16))),optional(seq(tensor(int32))),optional(seq(tensor(int64))),optional(seq(tensor(int8))),optional(seq(tensor(string))),optional(seq(tensor(uint16))),optional(seq(tensor(uint32))),optional(seq(tensor(uint64))),optional(seq(tensor(uint8))),optional(tensor(bfloat16)),optional(tensor(bool)),optional(tensor(complex128)),optional(tensor(complex64)),optional(tensor(double)),optional(tensor(float)),optional(tensor(float16)),optional(tensor(float8e4m3fn)),optional(tensor(float8e4m3fnuz)),optional(tensor(float8e5m2)),optional(tensor(float8e5m2fnuz)),optional(tensor(int16)),optional(tensor(int32)),optional(tensor(int4)),optional(tensor(int64)),optional(tensor(int8)),optional(tensor(string)),optional(tensor(uint16)),optional(tensor(uint32)),optional(tensor(uint4)),optional(tensor(uint64)),optional(tensor(uint8)),seq(tensor(bfloat16)),seq(tensor(bool)),seq(tensor(complex128)),seq(tensor(complex64)),seq(tensor(double)),seq(tensor(float)),seq(tensor(float16)),seq(tensor(float8e4m3fn)),seq(tensor(float8e4m3fnuz)),seq(tensor(float8e5m2)),seq(tensor(float8e5m2fnuz)),seq(tensor(int16)),seq(tensor(int32)),seq(tensor(int4)),seq(tensor(int64)),seq(tensor(int8)),seq(tensor(string)),seq(tensor(uint16)),seq(tensor(uint32)),seq(tensor(uint4)),seq(tensor(uint64)),seq(tensor(uint8)),tensor(bfloat16),tensor(bool),tensor(complex128),tensor(complex64),tensor(double),tensor(float),tensor(float16),tensor(float8e4m3fn),tensor(float8e4m3fnuz),tensor(float8e5m2),tensor(float8e5m2fnuz),tensor(int16),tensor(int32),tensor(int4),tensor(int64),tensor(int8),tensor(string),tensor(uint16),tensor(uint32),tensor(uint4),tensor(uint64),tensor(uint8)):All Tensor, Sequence(Tensor), Optional(Tensor), and Optional(Sequence(Tensor)) types up to IRv10.
B in (
tensor(bool)):Only bool
If - 19¶
Version¶
name: If (GitHub)
domain:
mainsince_version:
19function:
Falsesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 19.
Summary¶
If conditional
Attributes¶
else_branch - GRAPH (required) :
Graph to run if condition is false. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the then_branch.
then_branch - GRAPH (required) :
Graph to run if condition is true. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the else_branch.
Inputs¶
cond (heterogeneous) - B:
Condition for the if. The tensor must contain a single element.
Outputs¶
Between 1 and 2147483647 outputs.
outputs (variadic) - V:
Values that are live-out to the enclosing scope. The return values in the
then_branchandelse_branchmust be of the same data type. Thethen_branchandelse_branchmay produce tensors with the same element type and different shapes. If corresponding outputs from the then-branch and the else-branch have static shapes S1 and S2, then the shape of the corresponding output variable of the if-node (if present) must be compatible with both S1 and S2 as it represents the union of both possible shapes.For example, if in a model file, the first output ofthen_branchis typed float tensor with shape [2] and the first output ofelse_branchis another float tensor with shape [3], If’s first output should have (a) no shape set, or (b) a shape of rank 1 with neitherdim_valuenordim_paramset, or © a shape of rank 1 with a uniquedim_param. In contrast, the first output cannot have the shape [2] since [2] and [3] are not compatible.
Type Constraints¶
V in (
optional(seq(tensor(bfloat16))),optional(seq(tensor(bool))),optional(seq(tensor(complex128))),optional(seq(tensor(complex64))),optional(seq(tensor(double))),optional(seq(tensor(float))),optional(seq(tensor(float16))),optional(seq(tensor(int16))),optional(seq(tensor(int32))),optional(seq(tensor(int64))),optional(seq(tensor(int8))),optional(seq(tensor(string))),optional(seq(tensor(uint16))),optional(seq(tensor(uint32))),optional(seq(tensor(uint64))),optional(seq(tensor(uint8))),optional(tensor(bfloat16)),optional(tensor(bool)),optional(tensor(complex128)),optional(tensor(complex64)),optional(tensor(double)),optional(tensor(float)),optional(tensor(float16)),optional(tensor(float8e4m3fn)),optional(tensor(float8e4m3fnuz)),optional(tensor(float8e5m2)),optional(tensor(float8e5m2fnuz)),optional(tensor(int16)),optional(tensor(int32)),optional(tensor(int64)),optional(tensor(int8)),optional(tensor(string)),optional(tensor(uint16)),optional(tensor(uint32)),optional(tensor(uint64)),optional(tensor(uint8)),seq(tensor(bfloat16)),seq(tensor(bool)),seq(tensor(complex128)),seq(tensor(complex64)),seq(tensor(double)),seq(tensor(float)),seq(tensor(float16)),seq(tensor(float8e4m3fn)),seq(tensor(float8e4m3fnuz)),seq(tensor(float8e5m2)),seq(tensor(float8e5m2fnuz)),seq(tensor(int16)),seq(tensor(int32)),seq(tensor(int64)),seq(tensor(int8)),seq(tensor(string)),seq(tensor(uint16)),seq(tensor(uint32)),seq(tensor(uint64)),seq(tensor(uint8)),tensor(bfloat16),tensor(bool),tensor(complex128),tensor(complex64),tensor(double),tensor(float),tensor(float16),tensor(float8e4m3fn),tensor(float8e4m3fnuz),tensor(float8e5m2),tensor(float8e5m2fnuz),tensor(int16),tensor(int32),tensor(int64),tensor(int8),tensor(string),tensor(uint16),tensor(uint32),tensor(uint64),tensor(uint8)):All Tensor, Sequence(Tensor), Optional(Tensor), and Optional(Sequence(Tensor)) types up to IRv9.
B in (
tensor(bool)):Only bool
If - 16¶
Version¶
name: If (GitHub)
domain:
mainsince_version:
16function:
Falsesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 16.
Summary¶
If conditional
Attributes¶
else_branch - GRAPH (required) :
Graph to run if condition is false. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the then_branch.
then_branch - GRAPH (required) :
Graph to run if condition is true. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the else_branch.
Inputs¶
cond (heterogeneous) - B:
Condition for the if. The tensor must contain a single element.
Outputs¶
Between 1 and 2147483647 outputs.
outputs (variadic) - V:
Values that are live-out to the enclosing scope. The return values in the
then_branchandelse_branchmust be of the same data type. Thethen_branchandelse_branchmay produce tensors with the same element type and different shapes. If corresponding outputs from the then-branch and the else-branch have static shapes S1 and S2, then the shape of the corresponding output variable of the if-node (if present) must be compatible with both S1 and S2 as it represents the union of both possible shapes.For example, if in a model file, the first output ofthen_branchis typed float tensor with shape [2] and the first output ofelse_branchis another float tensor with shape [3], If’s first output should have (a) no shape set, or (b) a shape of rank 1 with neitherdim_valuenordim_paramset, or © a shape of rank 1 with a uniquedim_param. In contrast, the first output cannot have the shape [2] since [2] and [3] are not compatible.
Type Constraints¶
V in (
optional(seq(tensor(bfloat16))),optional(seq(tensor(bool))),optional(seq(tensor(complex128))),optional(seq(tensor(complex64))),optional(seq(tensor(double))),optional(seq(tensor(float))),optional(seq(tensor(float16))),optional(seq(tensor(int16))),optional(seq(tensor(int32))),optional(seq(tensor(int64))),optional(seq(tensor(int8))),optional(seq(tensor(string))),optional(seq(tensor(uint16))),optional(seq(tensor(uint32))),optional(seq(tensor(uint64))),optional(seq(tensor(uint8))),optional(tensor(bfloat16)),optional(tensor(bool)),optional(tensor(complex128)),optional(tensor(complex64)),optional(tensor(double)),optional(tensor(float)),optional(tensor(float16)),optional(tensor(int16)),optional(tensor(int32)),optional(tensor(int64)),optional(tensor(int8)),optional(tensor(string)),optional(tensor(uint16)),optional(tensor(uint32)),optional(tensor(uint64)),optional(tensor(uint8)),seq(tensor(bfloat16)),seq(tensor(bool)),seq(tensor(complex128)),seq(tensor(complex64)),seq(tensor(double)),seq(tensor(float)),seq(tensor(float16)),seq(tensor(int16)),seq(tensor(int32)),seq(tensor(int64)),seq(tensor(int8)),seq(tensor(string)),seq(tensor(uint16)),seq(tensor(uint32)),seq(tensor(uint64)),seq(tensor(uint8)),tensor(bfloat16),tensor(bool),tensor(complex128),tensor(complex64),tensor(double),tensor(float),tensor(float16),tensor(int16),tensor(int32),tensor(int64),tensor(int8),tensor(string),tensor(uint16),tensor(uint32),tensor(uint64),tensor(uint8)):All Tensor, Sequence(Tensor), Optional(Tensor), and Optional(Sequence(Tensor)) types up to IRv4.
B in (
tensor(bool)):Only bool
If - 13¶
Version¶
name: If (GitHub)
domain:
mainsince_version:
13function:
Falsesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 13.
Summary¶
If conditional
Attributes¶
else_branch - GRAPH (required) :
Graph to run if condition is false. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the then_branch.
then_branch - GRAPH (required) :
Graph to run if condition is true. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the else_branch.
Inputs¶
cond (heterogeneous) - B:
Condition for the if. The tensor must contain a single element.
Outputs¶
Between 1 and 2147483647 outputs.
outputs (variadic) - V:
Values that are live-out to the enclosing scope. The return values in the
then_branchandelse_branchmust be of the same data type. Thethen_branchandelse_branchmay produce tensors with the same element type and different shapes. If corresponding outputs from the then-branch and the else-branch have static shapes S1 and S2, then the shape of the corresponding output variable of the if-node (if present) must be compatible with both S1 and S2 as it represents the union of both possible shapes.For example, if in a model file, the first output ofthen_branchis typed float tensor with shape [2] and the first output ofelse_branchis another float tensor with shape [3], If’s first output should have (a) no shape set, or (b) a shape of rank 1 with neitherdim_valuenordim_paramset, or © a shape of rank 1 with a uniquedim_param. In contrast, the first output cannot have the shape [2] since [2] and [3] are not compatible.
Type Constraints¶
V in (
seq(tensor(bool)),seq(tensor(complex128)),seq(tensor(complex64)),seq(tensor(double)),seq(tensor(float)),seq(tensor(float16)),seq(tensor(int16)),seq(tensor(int32)),seq(tensor(int64)),seq(tensor(int8)),seq(tensor(string)),seq(tensor(uint16)),seq(tensor(uint32)),seq(tensor(uint64)),seq(tensor(uint8)),tensor(bool),tensor(complex128),tensor(complex64),tensor(double),tensor(float),tensor(float16),tensor(int16),tensor(int32),tensor(int64),tensor(int8),tensor(string),tensor(uint16),tensor(uint32),tensor(uint64),tensor(uint8)):All Tensor and Sequence types
B in (
tensor(bool)):Only bool
If - 11¶
Version¶
name: If (GitHub)
domain:
mainsince_version:
11function:
Falsesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 11.
Summary¶
If conditional
Attributes¶
else_branch - GRAPH (required) :
Graph to run if condition is false. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the then_branch.
then_branch - GRAPH (required) :
Graph to run if condition is true. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the else_branch.
Inputs¶
cond (heterogeneous) - B:
Condition for the if. The tensor must contain a single element.
Outputs¶
Between 1 and 2147483647 outputs.
outputs (variadic) - V:
Values that are live-out to the enclosing scope. The return values in the
then_branchandelse_branchmust be of the same data type. Thethen_branchandelse_branchmay produce tensors with the same element type and different shapes. If corresponding outputs from the then-branch and the else-branch have static shapes S1 and S2, then the shape of the corresponding output variable of the if-node (if present) must be compatible with both S1 and S2 as it represents the union of both possible shapes.For example, if in a model file, the first output ofthen_branchis typed float tensor with shape [2] and the first output ofelse_branchis another float tensor with shape [3], If’s first output should have (a) no shape set, or (b) a shape of rank 1 with neitherdim_valuenordim_paramset, or © a shape of rank 1 with a uniquedim_param. In contrast, the first output cannot have the shape [2] since [2] and [3] are not compatible.
Type Constraints¶
V in (
tensor(bool),tensor(complex128),tensor(complex64),tensor(double),tensor(float),tensor(float16),tensor(int16),tensor(int32),tensor(int64),tensor(int8),tensor(string),tensor(uint16),tensor(uint32),tensor(uint64),tensor(uint8)):All Tensor types
B in (
tensor(bool)):Only bool
If - 1¶
Version¶
name: If (GitHub)
domain:
mainsince_version:
1function:
Falsesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 1.
Summary¶
If conditional
Attributes¶
else_branch - GRAPH (required) :
Graph to run if condition is false. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the then_branch.
then_branch - GRAPH (required) :
Graph to run if condition is true. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the else_branch.
Inputs¶
cond (heterogeneous) - B:
Condition for the if. The tensor must contain a single element.
Outputs¶
Between 1 and 2147483647 outputs.
outputs (variadic) - V:
Values that are live-out to the enclosing scope. The return values in the
then_branchandelse_branchmust be of the same shape and same data type.
Type Constraints¶
V in (
tensor(bool),tensor(complex128),tensor(complex64),tensor(double),tensor(float),tensor(float16),tensor(int16),tensor(int32),tensor(int64),tensor(int8),tensor(string),tensor(uint16),tensor(uint32),tensor(uint64),tensor(uint8)):All Tensor types
B in (
tensor(bool)):Only bool