DML_ELEMENT_WISE_IF_OPERATOR_DESC 結構 (directml.h)
根據ConditionTensor中對應元素的值,從ATensor或BTensor中選取專案。 ConditionTensor的非零元素會從ATensor選取,而零值元素則從BTensor選取。
f(cond, a, b) = a, if cond != 0
b, otherwise
Example:
[[1, 0], [1, 1]] // ConditionTensor
[[1, 2], [3, 4]] // ATensor
[[9, 8], [7, 6]] // BTensor
[[1, 8], [3, 4]] // Output
語法
struct DML_ELEMENT_WISE_IF_OPERATOR_DESC {
const DML_TENSOR_DESC *ConditionTensor;
const DML_TENSOR_DESC *ATensor;
const DML_TENSOR_DESC *BTensor;
const DML_TENSOR_DESC *OutputTensor;
};
成員
ConditionTensor
類型:const DML_TENSOR_DESC*
要從中讀取的條件張量。
ATensor
類型:const DML_TENSOR_DESC*
包含左側輸入的張量。
BTensor
類型:const DML_TENSOR_DESC*
包含右側輸入的張量。
OutputTensor
類型:const DML_TENSOR_DESC*
要寫入結果的輸出張量。
備註
可用來在功能上建置其他匯總運算子,例如 LeakyRelu。 以下是虛擬程式碼中的圖例, (不是最有效率的方式,但可能) : LeakyRelu(x) = If(Less(x, 0), Mul(x, alpha), x)
。
可用性
這個運算子是在 中 DML_FEATURE_LEVEL_2_0
引進的。
Tensor 條件約束
- ATensor、BTensor、ConditionTensor和OutputTensor必須具有相同的DimensionCount和大小。
- ATensor、 BTensor 和OutputTensor 必須具有相同 的 DataType。
Tensor 支援
DML_FEATURE_LEVEL_5_0和更新版本
張 | 種類 | 支援的維度計數 | 支援的資料類型 |
---|---|---|---|
ConditionTensor | 輸入 | 1 到 8 | UINT8 |
ATensor | 輸入 | 1 到 8 | FLOAT64、FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8 |
BTensor | 輸入 | 1 到 8 | FLOAT64、FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8 |
OutputTensor | 輸出 | 1 到 8 | FLOAT64、FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8 |
DML_FEATURE_LEVEL_3_0和更新版本
張 | 種類 | 支援的維度計數 | 支援的資料類型 |
---|---|---|---|
ConditionTensor | 輸入 | 1 到 8 | UINT8 |
ATensor | 輸入 | 1 到 8 | FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8 |
BTensor | 輸入 | 1 到 8 | FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8 |
OutputTensor | 輸出 | 1 到 8 | FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8 |
DML_FEATURE_LEVEL_2_0和更新版本
張 | 種類 | 支援的維度計數 | 支援的資料類型 |
---|---|---|---|
ConditionTensor | 輸入 | 4 | UINT8 |
ATensor | 輸入 | 4 | FLOAT16 |
BTensor | 輸入 | 4 | FLOAT16 |
OutputTensor | 輸出 | 4 | FLOAT16 |
需求
最低支援的用戶端 | Windows 10版本 2004 (10.0;組建 19041) |
最低支援的伺服器 | Windows Server 版本 2004 (10.0;組建 19041) |
標頭 | directml.h |