DML_DYNAMIC_QUANTIZE_LINEAR_OPERATOR_DESC構造体 (directml.h)
InputTensor を量子化するために必要な量子化スケールとゼロ ポイント値を計算し、その量子化を適用して OutputTensor に結果を書き込みます。
この演算子では、次の式を使用して量子化します。
InputMax = Max(InputTensor)
InputMin = Min(InputTensor)
AValue = (A - AZeroPoint) * AScale
BValue = (B - BZeroPoint) * BScale
// For uint8 output, Min = 0, Max = 255
// For int8 output, Min = -128, Max = 127
OutputScale = (InputMax – InputMin) / (Max – Min)
OutputZeroPoint = Min - InputMin / OutputScale
OutputTensor = clamp(round(InputValue / OutputScale) + OutputZeroPoint, Min, Max)
構文
struct DML_DYNAMIC_QUANTIZE_LINEAR_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *OutputTensor;
const DML_TENSOR_DESC *OutputScaleTensor;
const DML_TENSOR_DESC *OutputZeroPointTensor;
};
メンバー
InputTensor
型: const DML_TENSOR_DESC*
入力を含むテンソル。
OutputTensor
型: const DML_TENSOR_DESC*
結果を書き込む出力テンソル。
OutputScaleTensor
型: const DML_TENSOR_DESC*
OutputTensor の出力スケール ファクターを書き込 む出力テンソル。 OutputScaleTensor の要素の予想される数は 1 です。
OutputZeroPointTensor
型: const DML_TENSOR_DESC*
OutputTensor の出力 0 ポイントを書き込 む出力テンソル。 OutputZeroPointTensor の要素の予想される数は 1 です。
注釈
可用性
この演算子は 、DML_FEATURE_LEVEL_4_0で導入されました。
テンソル制約
- InputTensor、 OutputScaleTensor、 OutputTensor、 および OutputZeroPointTensor は、同じ DimensionCount を持つ必要があります。
- OutputTensor と OutputZeroPointTensor には、同じ DataType が必要です。
Tensor のサポート
テンソル | 種類 | サポートされているディメンション数 | サポートされるデータ型 |
---|---|---|---|
InputTensor | 入力 | 1 から 8 | FLOAT32、FLOAT16 |
OutputTensor | 出力 | 1 から 8 | INT8、UINT8 |
OutputScaleTensor | 出力 | 1 から 8 | FLOAT32 |
OutputZeroPointTensor | 出力 | 1 から 8 | INT8、UINT8 |
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows ビルド 22000 |
サポートされている最小のサーバー | Windows ビルド 22000 |
Header | directml.h |