Visible to Intel only — GUID: GUID-17895265-C4CE-4EE5-8482-367BD58692C7
Visible to Intel only — GUID: GUID-17895265-C4CE-4EE5-8482-367BD58692C7
Select
General
The select operation returns a tensor filled with the elements from the second or the third input, depending on the condition (the first input) value.
dst[i] = cond[i] ? src_0[i] : src_1[i]
Broadcasting is supported.
Broadcasting rules
If the auto_broadcast attribute is not none, the select operation takes a two-step broadcast before performing the selection:
Step 1 : Input tensors src_0 and src_1 are broadcasted to dst_shape according to the Numpy broadcast rules.
Step 2 : Then, the cond tensor will be one-way broadcasted to the dst_shape of broadcasted src_0 and src_1. To be more specific, we align the two shapes to the right and compare them from right to left. Each dimension should be either equal or the dimension of cond should be 1.
example :
cond={4, 5}, dst_shape={2, 3, 4, 5} => dst = {2, 3, 4, 5}
cond={3, 1, 5}, dst_shape={2, 3, 4, 5} => dst = {2, 3, 4, 5}
cond={3,5}, dst_shape={2, 3, 4, 5} => dst = invalid_shape
Operation attributes
Attribute Name |
Description |
Value Type |
Supported Values |
Required or Optional |
---|---|---|---|---|
Specifies rules used for auto-broadcasting of src tensors. |
string |
none , numpy (default) |
Optional |
Execution arguments
The inputs and outputs must be provided according to the following index order when constructing an operation.
Inputs
Index |
Argument Name |
Required or Optional |
---|---|---|
0 |
cond |
Required |
1 |
src_0 |
Required |
2 |
src_1 |
Required |
Outputs
Index |
Argument Name |
Required or Optional |
---|---|---|
0 |
dst |
Required |
Supported data types
Select operation supports the following data type combinations.
Cond |
Src_0 / Src_1 |
Dst |
---|---|---|
boolean |
f32 |
f32 |
boolean |
bf16 |
bf16 |
boolean |
f16 |
f16 |