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で導入されました。

テンソル制約

  • InputTensorOutputScaleTensorOutputTensorおよび OutputZeroPointTensor は、同じ DimensionCount を持つ必要があります。
  • OutputTensorOutputZeroPointTensor には、同じ 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

こちらもご覧ください