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 輸出零點的輸出張量。 OutputZeroPointTensor 中預期的元素數目為 1。

備註

可用性

此運算子是在 DML_FEATURE_LEVEL_4_0 中引進。

Tensor 條件約束

  • InputTensorOutputScaleTensorOutputTensorOutputZeroPointTensor 必須具有相同的 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
標頭 directml.h

另請參閱