共用方式為


DML_ELEMENT_WISE_QUANTIZED_LINEAR_ADD_OPERATOR_DESC結構 (directml.h)

ATensor 中的每個元素新增至其對應元素,BTensor中,將結果放入 outputTensor 的對應元素中。 ATensorBTensor 中包含的值會使用下列方程式來取消量化,然後加入並重新量化。

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。

注意

小數位數 0 會導致未定義的行為。

AZeroPointTensor

類型:_Maybenull_ const DML_TENSOR_DESC*

包含 ATensor所需零點的張量。 AZeroPointTensor 中預期的元素數目為 1。 AZeroPointTensor 是選擇性的張量,如果未提供,則預設為 0。

BTensor

類型:const DML_TENSOR_DESC*

包含右側輸入的張量。

BScaleTensor

類型:const DML_TENSOR_DESC*

包含 BTensor所需縮放比例的張量。 BScaleTensor 中預期的元素數目為 1。

注意

小數位數 0 會導致未定義的行為。

BZeroPointTensor

類型:_Maybenull_ const DML_TENSOR_DESC*

包含 BTensor所需零點的張量。 BZeroPointTensor 中預期的元素數目為 1。 BZeroPointTensor 是選擇性的張量,如果未提供,則預設為 0。

OutputScaleTensor

類型:const DML_TENSOR_DESC*

包含 OutputTensor所需縮放比例的張量。 這是輸入張量,定義在量化輸出值時要使用的輸出量化縮放比例。 OutputScaleTensor 中預期的元素數目為 1。

注意

小數位數 0 會導致未定義的行為。

OutputZeroPointTensor

類型:_Maybenull_ const DML_TENSOR_DESC*

包含 OutputTensor所需零點的張量。 這是輸入張量,定義在量化輸出值時要使用的輸出量化零點。 OutputZeroPointTensor 中預期的元素數目為 1。 OutputZeroPointTensor 是選擇性的張量,如果未提供,則預設為 0。

OutputTensor

類型:const DML_TENSOR_DESC*

要寫入結果的輸出張量。

言論

可用性

此運算子是在 DML_FEATURE_LEVEL_4_0中引進的。

Tensor 條件約束

  • AScaleTensorATensorAZeroPointTensorBScaleTensorBTensorBZeroPointTensorOutputScaleTensorOutputTensorOutputZeroPointTensor 必須具有相同 DimensionCount
  • BTensorBZeroPointTensor 必須具有相同 的 DataType
  • OutputTensorOutputZeroPointTensor 必須具有相同的 DataType
  • ATensorAZeroPointTensor 必須具有相同 的 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
標頭 directml.h

另請參閱