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 條件約束
- 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 |
標頭 | directml.h |