DML_ELEMENT_WISE_QUANTIZED_LINEAR_ADD_OPERATOR_DESC構造体 (directml.h)
ATensor 内のすべての要素を BTensor の対応する要素に追加し、OutputTensor の対応する要素に結果を配置します。 ATensor と BTensor に含まれる値は、次の式を使用して破棄され、追加および再量子化されます。
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 です。
AZeroPointTensor
型: _Maybenull_ const DML_TENSOR_DESC*
ATensor の目的のゼロ ポイントを含む テンソル。 AZeroPointTensor の要素の予想される数は 1 です。 AZeroPointTensor は省略可能なテンソルであり、指定しない場合は既定値は 0 です。
BTensor
型: const DML_TENSOR_DESC*
右側の入力を含むテンソル。
BScaleTensor
型: const DML_TENSOR_DESC*
BTensor の目的のスケール ファクターを含む テンソル。 BScaleTensor の要素の予想される数は 1 です。
BZeroPointTensor
型: _Maybenull_ const DML_TENSOR_DESC*
BTensor の目的のゼロ ポイントを含む テンソル。 BZeroPointTensor の要素の予想される数は 1 です。 BZeroPointTensor は省略可能なテンソルであり、指定しない場合は既定値は 0 です。
OutputScaleTensor
型: const DML_TENSOR_DESC*
OutputTensor の目的のスケール ファクターを含む テンソル。 これは、出力値の量子化中に使用する出力量子化スケールファクターを定義する入力テンソルです。 OutputScaleTensor の要素の予想される数は 1 です。
OutputZeroPointTensor
型: _Maybenull_ const DML_TENSOR_DESC*
OutputTensor の目的のゼロ ポイントを含む テンソル。 これは、出力値を量子化する際に使用する出力量子化ゼロポイントを定義する入力テンソルです。 OutputZeroPointTensor の要素の予想される数は 1 です。 OutputZeroPointTensor は省略可能なテンソルであり、指定しない場合は既定値は 0 です。
OutputTensor
型: const DML_TENSOR_DESC*
結果を書き込む出力テンソル。
解説
可用性
この演算子は 、DML_FEATURE_LEVEL_4_0で導入されました。
テンソル制約
- AScaleTensor、 ATensor、 AZeroPointTensor、 BScaleTensor、 BTensor、 BZeroPointTensor、 OutputScaleTensor、 OutputTensor、 OutputZeroPointTensor は、同じ DimensionCount を持っている必要があります。
- BTensor と 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 |
Header | directml.h |