DML_ELEMENT_WISE_IF_OPERATOR_DESC 構造体 (directml.h)
ConditionTensor の対応する要素の値に応じて、ATensor または BTensor から要素を選択します。 ConditionTensor の 0 以外の要素は 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
導入されました。
テンソル制約
- 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) |
Header | directml.h |