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

另请参阅