DML_ELEMENT_WISE_QUANTIZED_LINEAR_ADD_OPERATOR_DESC構造体 (directml.h)
AValue = (A - AZeroPoint) * AScale
BValue = (B - BZeroPoint) * BScale
OutputValue = AValue + BValue
// For uint8 output, Min = 0, Max = 255
// For int8 output, Min = -128, Max = 127
OutputTensor = clamp(round(OutputValue / OutputScale) + OutputZeroPoint, Min, Max)
構文
struct DML_ELEMENT_WISE_QUANTIZED_LINEAR_ADD_OPERATOR_DESC {
const DML_TENSOR_DESC *ATensor;
const DML_TENSOR_DESC *AScaleTensor;
const DML_TENSOR_DESC *AZeroPointTensor;
const DML_TENSOR_DESC *BTensor;
const DML_TENSOR_DESC *BScaleTensor;
const DML_TENSOR_DESC *BZeroPointTensor;
const DML_TENSOR_DESC *OutputScaleTensor;
const DML_TENSOR_DESC *OutputZeroPointTensor;
const DML_TENSOR_DESC *OutputTensor;
};
メンバーズ
ATensor
型: const DML_TENSOR_DESC*
左側の入力を含むテンソル。
AScaleTensor
型: const DML_TENSOR_DESC*
ATensorの目的のスケール ファクターを含むテンソル。 AScaleTensor 内の予想される要素数は 1 です。
手記
スケール値が 0 の場合、未定義の動作になります。
AZeroPointTensor
型: _Maybenull_ const DML_TENSOR_DESC*
ATensorの目的のゼロ ポイントを含むテンソル。 AZeroPointTensor 内の予想される要素数は 1 です。 AZeroPointTensor は省略可能なテンソルであり、指定しない場合、既定値は 0 になります。
BTensor
型: const DML_TENSOR_DESC*
右側の入力を含むテンソル。
BScaleTensor
型: const DML_TENSOR_DESC*
BTensorの目的のスケール ファクターを含むテンソル。 BScaleTensor 内の予想される要素数は 1 です。
手記
スケール値が 0 の場合、未定義の動作になります。
BZeroPointTensor
型: _Maybenull_ const DML_TENSOR_DESC*
BTensorの目的のゼロ ポイントを含むテンソル。 BZeroPointTensor 内の予想される要素数は 1 です。 BZeroPointTensor は省略可能なテンソルであり、指定しない場合は既定値は 0 になります。
OutputScaleTensor
型: const DML_TENSOR_DESC*
OutputTensorの目的のスケール ファクターを含むテンソル。 これは、出力値を量子化するときに使用する出力量子化スケール ファクターを定義する入力テンソルです。 OutputScaleTensor 内の予想される要素
手記
スケール値が 0 の場合、未定義の動作になります。
OutputZeroPointTensor
型: _Maybenull_ const DML_TENSOR_DESC*
OutputTensorの目的のゼロ ポイントを含むテンソル。 これは、出力値を量子化する際に使用する出力量子化ゼロポイントを定義する入力テンソルです。 OutputZeroPointTensor 内
OutputTensor
型: const DML_TENSOR_DESC*
結果を書き込む出力テンソル。
備考
可用性
この演算子は、DML_FEATURE_LEVEL_4_0で導入されました。
Tensor 制約
AScaleTensor 、ATensor 、AZeroPointTensor 、BScaleTensor 、BTensor 、BZeroPointTensor 、OutputScaleTensor 、OutputTensor 、および OutputZeroPointTensorは、同じ DimensionCount を持つ必要があります。- BZeroPointTensor と
BZeroPointTensor 、DataType が同じである必要があります。 OutputTensor と OutputZeroPointTensorは、同じ DataType を持っている必要があります。- ATensor
と AZeroPointTensor は、同じ DataType を持つ必要があります。
Tensor のサポート
テンソル | 種類 | サポートされているディメンション数 | サポートされているデータ型 |
---|---|---|---|
ATensor | インプット | 1 から 8 | INT8、UINT8 |
AScaleTensor | インプット | 1 から 8 | FLOAT32 |
AZeroPointTensor | 省略可能な入力 | 1 から 8 | INT8、UINT8 |
BTensor | インプット | 1 から 8 | INT8、UINT8 |
BScaleTensor | インプット | 1 から 8 | FLOAT32 |
BZeroPointTensor | 省略可能な入力 | 1 から 8 | INT8、UINT8 |
OutputScaleTensor | インプット | 1 から 8 | FLOAT32 |
OutputZeroPointTensor | 省略可能な入力 | 1 から 8 | INT8、UINT8 |
OutputTensor | アウトプット | 1 から 8 | INT8、UINT8 |
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows ビルド 22000 |
サポートされる最小サーバー | Windows ビルド 22000 |
ヘッダー | directml.h |